summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/sqlalchemy/util/queue.py11
-rw-r--r--test/engine/test_pool.py1
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 = []