Fix threads stuck as zombie under M:N
In this case thread_sched_switch0 never returns, so we would never end up setting finished to true. Fixes [Bug #20638]
This commit is contained in:
parent
e194665720
commit
1cf32b2d7f
Notes:
git
2024-12-13 21:57:33 +00:00
@ -477,8 +477,8 @@ co_start(struct coroutine_context *from, struct coroutine_context *self)
|
|||||||
if (!has_ready_ractor && next_th && !next_th->nt) {
|
if (!has_ready_ractor && next_th && !next_th->nt) {
|
||||||
// switch to the next thread
|
// switch to the next thread
|
||||||
thread_sched_set_lock_owner(sched, NULL);
|
thread_sched_set_lock_owner(sched, NULL);
|
||||||
thread_sched_switch0(th->sched.context, next_th, nt, true);
|
|
||||||
th->sched.finished = true;
|
th->sched.finished = true;
|
||||||
|
thread_sched_switch0(th->sched.context, next_th, nt, true);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
// switch to the next Ractor
|
// switch to the next Ractor
|
||||||
|
Loading…
x
Reference in New Issue
Block a user