(self, timeout=None)
| 299 | return key |
| 300 | |
| 301 | def select(self, timeout=None): |
| 302 | # Selecting on empty lists on Windows errors out. |
| 303 | if not len(self._readers) and not len(self._writers): |
| 304 | return [] |
| 305 | |
| 306 | timeout = None if timeout is None else max(timeout, 0.0) |
| 307 | ready = [] |
| 308 | r, w, _ = _syscall_wrapper(self._wrap_select, True, self._readers, |
| 309 | self._writers, timeout=timeout) |
| 310 | r = set(r) |
| 311 | w = set(w) |
| 312 | for fd in r | w: |
| 313 | events = 0 |
| 314 | if fd in r: |
| 315 | events |= EVENT_READ |
| 316 | if fd in w: |
| 317 | events |= EVENT_WRITE |
| 318 | |
| 319 | key = self._key_from_fd(fd) |
| 320 | if key: |
| 321 | ready.append((key, events & key.events)) |
| 322 | return ready |
| 323 | |
| 324 | def _wrap_select(self, r, w, timeout=None): |
| 325 | """ Wrapper for select.select because timeout is a positional arg """ |
nothing calls this directly
no test coverage detected