Commit e778904
committed
fix(reactor): clear the op keepalive before publishing its continuation
coro_resume published the completion's continuation through dispatch_coro
before moving impl_ptr out of the op. When the continuation targets a
strand drained on another thread, that thread can resume it and reuse the
op via reset() the instant it is published, racing the impl_ptr move on
the completing thread. Move the keepalive out first so the write is
ordered before the publish; the ref still lives in the local across
resume(), so the op storage survives the continuation.1 parent 7935c82 commit e778904
1 file changed
Lines changed: 4 additions & 1 deletion
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
125 | 125 | | |
126 | 126 | | |
127 | 127 | | |
128 | | - | |
| 128 | + | |
| 129 | + | |
| 130 | + | |
129 | 131 | | |
| 132 | + | |
130 | 133 | | |
131 | 134 | | |
132 | 135 | | |
| |||
0 commit comments