[Python-3000-checkins] r59986 - python/branches/py3k/Lib/Queue.py

raymond.hettinger python-3000-checkins at python.org
Tue Jan 15 21:42:01 CET 2008


Author: raymond.hettinger
Date: Tue Jan 15 21:42:00 2008
New Revision: 59986

Modified:
   python/branches/py3k/Lib/Queue.py
Log:
Refactor if/elif chain for clarity and speed

Modified: python/branches/py3k/Lib/Queue.py
==============================================================================
--- python/branches/py3k/Lib/Queue.py	(original)
+++ python/branches/py3k/Lib/Queue.py	Tue Jan 15 21:42:00 2008
@@ -102,18 +102,17 @@
         """
         self.not_full.acquire()
         try:
-            if not block:
-                if self.maxsize > 0 and self._qsize() == self.maxsize:
-                    raise Full
-            elif timeout is None:
-                if self.maxsize > 0:
+            if self.maxsize > 0:
+                if not block:
+                    if self._qsize() == self.maxsize:
+                        raise Full
+                elif timeout is None:
                     while self._qsize() == self.maxsize:
                         self.not_full.wait()
-            else:
-                if timeout < 0:
+                elif timeout < 0:
                     raise ValueError("'timeout' must be a positive number")
-                endtime = _time() + timeout
-                if self.maxsize > 0:
+                else:
+                    endtime = _time() + timeout
                     while self._qsize() == self.maxsize:
                         remaining = endtime - _time()
                         if remaining <= 0.0:
@@ -152,9 +151,9 @@
             elif timeout is None:
                 while not self._qsize():
                     self.not_empty.wait()
+            elif timeout < 0:
+                raise ValueError("'timeout' must be a positive number")
             else:
-                if timeout < 0:
-                    raise ValueError("'timeout' must be a positive number")
                 endtime = _time() + timeout
                 while not self._qsize():
                     remaining = endtime - _time()


More information about the Python-3000-checkins mailing list