> On 8. Oct 2023, at 15:23, Andrew Doran <[email protected]> wrote: > > Module Name: src > Committed By: ad > Date: Sun Oct 8 13:23:05 UTC 2023 > > Modified Files: > src/sys/kern: kern_condvar.c kern_sleepq.c kern_timeout.c > kern_turnstile.c sys_lwp.c sys_select.c > src/sys/rump/librump/rumpkern: sleepq.c > src/sys/sys: sleepq.h syncobj.h > > Log Message: > Ensure that an LWP that has taken a legitimate wakeup never produces an > error code from sleepq_block(). Then, it's possible to make cv_signal() > work as expected and only ever wake a singular LWP. > > > To generate a diff of this commit: ... > cvs rdiff -u -r1.63 -r1.64 src/sys/kern/sys_select.c
- sleepq_unsleep(l, false);
+ sleepq_remove(l->l_sleepq, l, true);
}
}
mutex_spin_exit(lock);
Looks like sleepq_remove() unlocks l->l_mutex == lock and
then mutex_spin_exit(lock) will unlock an unlocked mutex.
--
J. Hannken-Illjes - [email protected]
signature.asc
Description: Message signed with OpenPGP
