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@