]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
Refactor if/elif chain for clarity and speed
authorRaymond Hettinger <python@rcn.com>
Tue, 15 Jan 2008 20:42:00 +0000 (20:42 +0000)
committerRaymond Hettinger <python@rcn.com>
Tue, 15 Jan 2008 20:42:00 +0000 (20:42 +0000)
Lib/Queue.py

index 726cf3eb6cef7747fdc8c556e9ec7ebc0b235ab4..f8aa0af23180ab82b9e060435602a49ed659dd80 100644 (file)
@@ -102,18 +102,17 @@ class Queue:
         """
         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 @@ class Queue:
             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()