(self, fileobj, events, data=None)
| 359 | return key |
| 360 | |
| 361 | def modify(self, fileobj, events, data=None): |
| 362 | try: |
| 363 | key = self._fd_to_key[self._fileobj_lookup(fileobj)] |
| 364 | except KeyError: |
| 365 | raise KeyError(f"{fileobj!r} is not registered") from None |
| 366 | |
| 367 | changed = False |
| 368 | if events != key.events: |
| 369 | selector_events = ((events & EVENT_READ and self._EVENT_READ) |
| 370 | | (events & EVENT_WRITE and self._EVENT_WRITE)) |
| 371 | try: |
| 372 | self._selector.modify(key.fd, selector_events) |
| 373 | except: |
| 374 | super().unregister(fileobj) |
| 375 | raise |
| 376 | changed = True |
| 377 | if data != key.data: |
| 378 | changed = True |
| 379 | |
| 380 | if changed: |
| 381 | key = key._replace(events=events, data=data) |
| 382 | self._fd_to_key[key.fd] = key |
| 383 | return key |
| 384 | |
| 385 | def select(self, timeout=None): |
| 386 | # This is shared between poll() and epoll(). |
nothing calls this directly
no test coverage detected