VTRiot
18e7fd8364
fix(cron): cancel orphan coroutine on delivery timeout before standalone fallback
...
When the live adapter delivery path (_deliver_result) or media send path
(_send_media_via_adapter) times out at future.result(timeout=N), the
underlying coroutine scheduled via asyncio.run_coroutine_threadsafe can
still complete on the event loop, causing a duplicate send after the
standalone fallback runs.
Cancel the future on TimeoutError before re-raising, so the standalone
fallback is the sole delivery path.
Adds TestDeliverResultTimeoutCancelsFuture and
TestSendMediaTimeoutCancelsFuture.
2026-04-21 05:52:16 -07:00
..
2026-04-21 03:39:55 -07:00
2026-04-21 01:31:58 -07:00
2026-04-20 23:05:38 -07:00
2026-04-21 05:52:16 -07:00
2026-04-20 14:56:04 -07:00
2026-04-07 17:28:37 -07:00
2026-03-14 14:27:20 +03:00
2026-04-21 03:06:56 -07:00
2026-04-21 05:19:43 -07:00
2026-04-18 22:50:55 -07:00
2026-04-16 16:50:15 -07:00
2026-04-20 04:46:45 -07:00
2026-04-21 05:32:27 -07:00
2026-04-16 04:22:16 -07:00
2026-04-21 05:19:03 -07:00
2026-04-19 07:47:15 -05:00
2026-04-21 01:33:10 -07:00
2026-03-17 02:53:33 -07:00
2026-04-21 01:56:35 -07:00
2026-04-20 22:14:29 -07:00
2026-04-20 04:56:06 -07:00
2026-04-10 13:06:02 -07:00
2026-04-07 17:59:42 -07:00
2026-04-13 10:50:24 -07:00
2026-04-12 03:53:30 -07:00
2026-03-15 21:59:53 -07:00
2026-04-12 16:36:11 -07:00
2026-04-13 10:50:24 -07:00
2026-04-20 05:10:03 -07:00
2026-04-02 15:33:51 -07:00
2026-04-11 23:12:11 -07:00
2026-03-29 15:47:19 -07:00
2026-04-20 12:23:05 -07:00
2026-04-19 22:44:47 -07:00
2026-03-24 08:19:23 -07:00
2026-04-07 17:59:42 -07:00
2026-03-20 15:41:06 -04:00
2026-04-20 03:48:08 -07:00
2026-04-07 22:23:28 -07:00
2026-03-30 17:34:43 -07:00
2026-04-17 00:20:40 -07:00
2026-04-17 13:31:53 -07:00
2026-04-08 00:41:36 -07:00
2026-03-19 15:16:35 +01:00
2026-04-10 13:37:45 -07:00
2026-04-17 14:21:22 -07:00
2026-04-19 19:18:19 -07:00
2026-04-20 12:23:05 -07:00
2026-04-20 12:23:05 -07:00
2026-04-20 23:20:33 -07:00
2026-04-19 16:15:22 -07:00
2026-03-30 13:28:10 +09:00