> On 8. Oct 2023, at 15:23, Andrew Doran <ad%netbsd.org@localhost> 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 - hannken%mailbox.org@localhost
Attachment:
signature.asc
Description: Message signed with OpenPGP