(self, fileobj, events, data=None)
| 373 | return key |
| 374 | |
| 375 | def modify(self, fileobj, events, data=None): |
| 376 | try: |
| 377 | key = self._fd_to_key[self._fileobj_lookup(fileobj)] |
| 378 | except KeyError: |
| 379 | raise KeyError(f"{fileobj!r} is not registered") from None |
| 380 | |
| 381 | changed = False |
| 382 | if events != key.events: |
| 383 | selector_events = 0 |
| 384 | if events & EVENT_READ: |
| 385 | selector_events |= self._EVENT_READ |
| 386 | if events & EVENT_WRITE: |
| 387 | selector_events |= self._EVENT_WRITE |
| 388 | try: |
| 389 | self._selector.modify(key.fd, selector_events) |
| 390 | except: |
| 391 | super().unregister(fileobj) |
| 392 | raise |
| 393 | changed = True |
| 394 | if data != key.data: |
| 395 | changed = True |
| 396 | |
| 397 | if changed: |
| 398 | key = key._replace(events=events, data=data) |
| 399 | self._fd_to_key[key.fd] = key |
| 400 | return key |
| 401 | |
| 402 | def select(self, timeout=None): |
| 403 | # This is shared between poll() and epoll(). |
nothing calls this directly
no test coverage detected