Return a snapshot of handlers for the given event type, removing once-handlers.
(self, event_type: str)
| 48 | self._release() |
| 49 | |
| 50 | def get_handlers(self, event_type: str) -> list[EventHandler]: |
| 51 | """Return a snapshot of handlers for the given event type, removing once-handlers.""" |
| 52 | self._acquire() |
| 53 | try: |
| 54 | handlers = self._handlers.get(event_type) |
| 55 | if not handlers: |
| 56 | return [] |
| 57 | result = list(handlers) |
| 58 | to_remove = [h for h in result if id(h) in self._once_ids] |
| 59 | for h in to_remove: |
| 60 | handlers.remove(h) |
| 61 | self._once_ids.discard(id(h)) |
| 62 | return result |
| 63 | finally: |
| 64 | self._release() |
| 65 | |
| 66 | def has_handlers(self, event_type: str) -> bool: |
| 67 | self._acquire() |
no test coverage detected