--- ..\original\trunk\Lib\Queue.py 2008-02-11 11:58:59.551231300 +0100 +++ Lib\Queue.py 2008-02-21 09:30:28.986860500 +0100 @@ -24,6 +24,10 @@ import threading except ImportError: import dummy_threading as threading + try: + int(maxsize) + except (TypeError, AttributeError, ValueError): # grumph + raise ValueError('maxsize should be an integer') self.maxsize = maxsize self._init(maxsize) # mutex must be held whenever the queue is mutating. All methods @@ -100,7 +104,7 @@ def full(self): """Return True if the queue is full, False otherwise (not reliable!).""" self.mutex.acquire() - n = 0 < self.maxsize == self._qsize() + n = 0 < int(self.maxsize) == self._qsize() self.mutex.release() return n @@ -117,18 +121,19 @@ """ self.not_full.acquire() try: - if self.maxsize > 0: + maxsize = int(self.maxsize) + if maxsize > 0: if not block: - if self._qsize() == self.maxsize: + if self._qsize() == maxsize: raise Full elif timeout is None: - while self._qsize() == self.maxsize: + while self._qsize() == maxsize: self.not_full.wait() elif timeout < 0: raise ValueError("'timeout' must be a positive number") else: endtime = _time() + timeout - while self._qsize() == self.maxsize: + while self._qsize() == maxsize: remaining = endtime - _time() if remaining <= 0.0: raise Full