diff options
-rw-r--r-- | lib/sqlalchemy/util/queue.py | 11 | ||||
-rw-r--r-- | test/engine/test_pool.py | 1 |
2 files changed, 11 insertions, 1 deletions
diff --git a/lib/sqlalchemy/util/queue.py b/lib/sqlalchemy/util/queue.py index 9e17527b7..571456577 100644 --- a/lib/sqlalchemy/util/queue.py +++ b/lib/sqlalchemy/util/queue.py @@ -25,9 +25,18 @@ within QueuePool. from collections import deque from time import time as _time from sqlalchemy.util import threading +import sys + +if sys.version_info < (2, 6): + def notify_all(condition): + condition.notify() +else: + def notify_all(condition): + condition.notify_all() __all__ = ['Empty', 'Full', 'Queue', 'SAAbort'] + class Empty(Exception): "Exception raised by Queue.get(block=0)/get_nowait()." @@ -183,7 +192,7 @@ class Queue: if not self.not_full.acquire(False): return try: - self.not_empty.notify_all() + notify_all(self.not_empty) finally: self.not_full.release() diff --git a/test/engine/test_pool.py b/test/engine/test_pool.py index a6c2b6250..492582f15 100644 --- a/test/engine/test_pool.py +++ b/test/engine/test_pool.py @@ -839,6 +839,7 @@ class QueuePoolTest(PoolTestBase): time.sleep(1) eq_(len(success), 12) + @testing.requires.python26 def test_notify_waiters(self): dbapi = MockDBAPI() canary = [] |