Put an item into the queue without blocking. If no free slot is immediately available, raise `QueueFull`.
(self, item: _T)
| 207 | return future |
| 208 | |
| 209 | def put_nowait(self, item: _T) -> None: |
| 210 | """Put an item into the queue without blocking. |
| 211 | |
| 212 | If no free slot is immediately available, raise `QueueFull`. |
| 213 | """ |
| 214 | self._consume_expired() |
| 215 | if self._getters: |
| 216 | assert self.empty(), "queue non-empty, why are getters waiting?" |
| 217 | getter = self._getters.popleft() |
| 218 | self.__put_internal(item) |
| 219 | future_set_result_unless_cancelled(getter, self._get()) |
| 220 | elif self.full(): |
| 221 | raise QueueFull |
| 222 | else: |
| 223 | self.__put_internal(item) |
| 224 | |
| 225 | def get( |
| 226 | self, timeout: Optional[Union[float, datetime.timedelta]] = None |