CVSROOT:        /cvs
Module name:    src
Changes by:     clau...@cvs.openbsd.org 2020/04/06 01:52:12

Modified files:
        sys/kern       : kern_synch.c 
        sys/sys        : proc.h 

Log message:
Fix single thread behaviour in sleep_setup_signal(). If a thread needs to
suspend (SINGLE_SUSPEND or SINGLE_PTRACE) it needs to do this in
sleep_setup_signal(). This way the case where single_thread_clear() is
called before the sleep gets its wakeup call can be correctly handled and
the thread is put back to sleep in sleep_finish(). If the wakeup happens
before unsuspend then p_wchan is 0 and the thread will not go to sleep again.
In case of a unwind an error is returned causing the thread to return
immediatly with that error.
With and OK mpi@ kettenis@

Reply via email to