asyncio.ensure_future(result) creates a task with only a weak ref in the event loop's task table. After the carrier raises CancelledError, the local 'task' variable goes out of scope and the loop can GC the handler before it finishes — the exact 'handler killed mid-flight' class we are fixing, just via GC instead of cancellation. Add _detached_fatal_tasks set on BasePlatformAdapter (matching the gateway-level pattern in _handle_adapter_fatal_error). Uses getattr fallback for test stubs built via object.__new__(). |
||
|---|---|---|
| .. | ||
| qqbot | ||
| ADDING_A_PLATFORM.md | ||
| __init__.py | ||
| _http_client_limits.py | ||
| api_server.py | ||
| base.py | ||
| bluebubbles.py | ||
| helpers.py | ||
| media_cache.py | ||
| msgraph_webhook.py | ||
| signal.py | ||
| signal_format.py | ||
| signal_rate_limit.py | ||
| webhook.py | ||
| webhook_filters.py | ||
| weixin.py | ||
| whatsapp_cloud.py | ||
| whatsapp_common.py | ||
| yuanbao.py | ||
| yuanbao_media.py | ||
| yuanbao_proto.py | ||
| yuanbao_sticker.py | ||