An adaptation of Py2.3/2.4's Queue module which supports reentrant behavior, using RLock instead of Lock for its mutex object. The Queue object is used exclusively by the sqlalchemy.pool.QueuePool class.
This is to support the connection pool's usage of weakref callbacks to return connections to the underlying Queue, which can in extremely rare cases be invoked within the get() method of the Queue itself, producing a put() inside the get() and therefore a reentrant condition.
Class | AsyncAdaptedQueue |
Undocumented |
Class | Empty |
Exception raised by Queue.get(block=0)/get_nowait(). |
Class | FallbackAsyncAdaptedQueue |
Undocumented |
Class | Full |
Exception raised by Queue.put(block=0)/put_nowait(). |
Class | Queue |
No class docstring; 0/6 instance variable, 8/14 methods documented |