CVSROOT: /cvs Module name: src Changes by: m...@cvs.openbsd.org 2023/02/13 02:42:45
Modified files: sys/kern : sys_generic.c syscalls.master Log message: Push kernel lock down to dopselect() and doppoll() and unlock select(2), pselect(2), poll(2) and ppoll(2). select(2) and poll(2) are just wrappers for kqueue(2)/kevent(2) which are already unlocked. They do temporary event queue initialization and scan for this call only. The difference is in local data conversion between select(2)/poll(2) and kevent(2) formats. To separate possible signal related fallout, dosigsuspend() left under the kernel lock. It will be taken only if optional signal mask arg passed to pselect(2) or ppoll(2). dosigsuspend() will be unlocked later with sigsuspend(2). Discussed with claudio@ and kettenis@. ok claudio@