Commit 726199b
fix: conditionally reorder change_state to prevent both live-lock and SIGURG during logging
For transitions TO Running: log before notifying listeners. MonitorListener
starts the 10ms preemption timer on Running state, so logging first ensures
the timer starts after the potentially slow I/O completes, preventing the
preemption live-lock on QEMU.
For all other transitions: notify before logging (original order). MonitorListener
removes the NOTIFY_NODE for non-Running states, so removing it first prevents
SIGURG from arriving during the log I/O.
Agent-Logs-Url: https://github.com/acl-dev/open-coroutine/sessions/7e58a7e2-bd00-42ef-8614-002f14778590
Co-authored-by: loongs-zhang <38336731+loongs-zhang@users.noreply.github.com>1 parent fac1168 commit 726199b
1 file changed
Lines changed: 17 additions & 8 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
18 | 18 | | |
19 | 19 | | |
20 | 20 | | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
28 | 26 | | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
29 | 39 | | |
30 | | - | |
31 | 40 | | |
32 | 41 | | |
33 | 42 | | |
| |||
0 commit comments