'Return buffers to the pool. If they are of the poolable size add them
to the free list, otherwise just mark the memory as free.
Arguments:
buffer_ (io.BytesIO): The buffer to return'

def deallocate(self, buf):

    with self._lock:
        buf.truncate(0)
        self._free.append(buf)
        if self._waiters:
            self._waiters[0].notify()
