Fix P_WSLEEP handling when continuing SSTOP-ed processes
authorclaudio <claudio@openbsd.org>
Sun, 13 Aug 2023 15:53:31 +0000 (15:53 +0000)
committerclaudio <claudio@openbsd.org>
Sun, 13 Aug 2023 15:53:31 +0000 (15:53 +0000)
commitd4b9d4747036fa562b886f23a67e486ba94b3dc6
tree06c970902c396073b5baf483b06f19835468a79a
parent6201e9b13c6e36563d07259af1c054c55f5b0c04
Fix P_WSLEEP handling when continuing SSTOP-ed processes

When continuing a process on the sleep queue just let it switch to
p_stat = SSLEEP even when P_WSLEEP is set. Once a proc is SSTOP-ed
in sleep_finish() a valid sleep point has been reached and there is
no need to make the process runnable again (which results in some
hairy race conditions). Instead simply clear P_WSLEEP since a stopped
proc reached the sleep state and there is no race with wakeup() anymore.

OK mpi@
sys/kern/kern_sig.c