]> git.ipfire.org Git - thirdparty/sqlalchemy/sqlalchemy.git/commitdiff
notify_all workaround for 2.5
authorMike Bayer <mike_mp@zzzcomputing.com>
Mon, 25 Jun 2012 18:25:36 +0000 (14:25 -0400)
committerMike Bayer <mike_mp@zzzcomputing.com>
Mon, 25 Jun 2012 18:25:36 +0000 (14:25 -0400)
lib/sqlalchemy/util/queue.py
test/engine/test_pool.py

index 9e17527b7b21ed63d5690b4979f757ff175faec4..5714565779298e3fd8967b37aa688b3f0db17cf6 100644 (file)
@@ -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()
 
index a6c2b6250b666eaa3cdc3d0aa0c1b158523ed640..492582f153f93717e80068c020eee4979d09f022 100644 (file)
@@ -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 = []