diff options
author | Victor Stinner <victor.stinner@gmail.com> | 2015-01-09 00:59:11 +0100 |
---|---|---|
committer | Victor Stinner <victor.stinner@gmail.com> | 2015-01-09 00:59:11 +0100 |
commit | e0fd3977396da4c8bfcae026eda2a7113e252322 (patch) | |
tree | 02e4955d477867c60063926781b6060d4379f1f8 | |
parent | d78cd0a4a14a60b6bfd4c767b06f3875e4a1878e (diff) | |
download | trollius-git-e0fd3977396da4c8bfcae026eda2a7113e252322.tar.gz |
Document why set_result() calls are safe
-rw-r--r-- | asyncio/queues.py | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/asyncio/queues.py b/asyncio/queues.py index 8f6c257..dce0d53 100644 --- a/asyncio/queues.py +++ b/asyncio/queues.py @@ -126,6 +126,8 @@ class Queue: # Use _put and _get instead of passing item straight to getter, in # case a subclass has logic that must run (e.g. JoinableQueue). self._put(item) + + # getter cannot be cancelled, we just removed done getters getter.set_result(self._get()) elif self._maxsize > 0 and self._maxsize <= self.qsize(): @@ -152,6 +154,8 @@ class Queue: # Use _put and _get instead of passing item straight to getter, in # case a subclass has logic that must run (e.g. JoinableQueue). self._put(item) + + # getter cannot be cancelled, we just removed done getters getter.set_result(self._get()) elif self._maxsize > 0 and self._maxsize <= self.qsize(): @@ -200,6 +204,8 @@ class Queue: item, putter = self._putters.popleft() self._put(item) # Wake putter on next tick. + + # getter cannot be cancelled, we just removed done putters putter.set_result(None) return self._get() |