From: Mike Bayer Date: Mon, 25 Jun 2012 18:25:36 +0000 (-0400) Subject: notify_all workaround for 2.5 X-Git-Tag: rel_0_8_0b1~344 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=844831c14fed941bc206525bdeb9d7541b97d322;p=thirdparty%2Fsqlalchemy%2Fsqlalchemy.git notify_all workaround for 2.5 --- diff --git a/lib/sqlalchemy/util/queue.py b/lib/sqlalchemy/util/queue.py index 9e17527b7b..5714565779 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 a6c2b6250b..492582f153 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 = []