From 844831c14fed941bc206525bdeb9d7541b97d322 Mon Sep 17 00:00:00 2001 From: Mike Bayer Date: Mon, 25 Jun 2012 14:25:36 -0400 Subject: [PATCH] notify_all workaround for 2.5 --- lib/sqlalchemy/util/queue.py | 11 ++++++++++- test/engine/test_pool.py | 1 + 2 files changed, 11 insertions(+), 1 deletion(-) 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 = [] -- 2.47.3