| 151 | _queue = None # type: Any |
| 152 | |
| 153 | def __init__(self, maxsize: int = 0) -> None: |
| 154 | if maxsize is None: |
| 155 | raise TypeError("maxsize can't be None") |
| 156 | |
| 157 | if maxsize < 0: |
| 158 | raise ValueError("maxsize can't be negative") |
| 159 | |
| 160 | self._maxsize = maxsize |
| 161 | self._init() |
| 162 | self._getters = collections.deque([]) # type: Deque[Future[_T]] |
| 163 | self._putters = collections.deque([]) # type: Deque[Tuple[_T, Future[None]]] |
| 164 | self._unfinished_tasks = 0 |
| 165 | self._finished = Event() |
| 166 | self._finished.set() |
| 167 | |
| 168 | @property |
| 169 | def maxsize(self) -> int: |