Issue #21723: asyncio.Queue: support any type of number (ex: float) for the

maximum size. Patch written by Vajrasky Kok.
This commit is contained in:
Victor Stinner 2014-06-17 23:36:21 +02:00
parent 14fbe72777
commit 66dc6b0f53
3 changed files with 21 additions and 3 deletions

View file

@ -105,7 +105,7 @@ class Queue:
if self._maxsize <= 0:
return False
else:
return self.qsize() == self._maxsize
return self.qsize() >= self._maxsize
@coroutine
def put(self, item):
@ -126,7 +126,7 @@ class Queue:
self._put(item)
getter.set_result(self._get())
elif self._maxsize > 0 and self._maxsize == self.qsize():
elif self._maxsize > 0 and self._maxsize <= self.qsize():
waiter = futures.Future(loop=self._loop)
self._putters.append((item, waiter))
@ -152,7 +152,7 @@ class Queue:
self._put(item)
getter.set_result(self._get())
elif self._maxsize > 0 and self._maxsize == self.qsize():
elif self._maxsize > 0 and self._maxsize <= self.qsize():
raise QueueFull
else:
self._put(item)