[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
CVS: cvs.openbsd.org: src
- To: source-changes_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org
- Subject: CVS: cvs.openbsd.org: src
- From: Philip Guenther <guenther_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org>
- Date: Thu, 2 Oct 2008 22:22:37 -0600 (MDT)
CVSROOT: /cvs
Module name: src
Changes by: guenther_(_at_)_cvs_(_dot_)_openbsd_(_dot_)_org 2008/10/02 22:22:37
Modified files:
sys/sys : proc.h
sys/kern : kern_sig.c
lib/librthread : rthread.h rthread_sig.c
Log message:
Make sigwait() work correctly. In particular, it'll work when the
signal is already pending in the calling thread or the main thread
and there's no longer a race condition where the signal could be
diverted but sigwait() would still block. There were some off-by-one
errors too.
(The checking of the main thread's pending list is just until a
pending list for the process can be added to struct process. For
now, such signals end up as pending on the main thread.)
oks tedu@ and art@
Visit your host, monkey.org