/[base]
ViewVC logotype

Revision 318243


Jump to revision: Previous Next
Author: kib
Date: Fri May 12 15:34:59 2017 UTC (7 years, 1 month ago)
Changed paths: 1
Log Message:
Do not wake up sleeping thread in reschedule_signals() if the signal
is blocked.  The spurious wakeup might result in spurious EINTR.

The reschedule_signals() function is called when the calling thread
has the signal mask changed.  For each newly blocked signal, we try to
find a thread which might have the signal not blocked.  If no such
thread exists, sigtd() returns random thread, which must not be waken
up.  I decided that re-checking, as suggested by PR submitter, is more
reasonable change than to change sigtd() interface, due to other uses
of sigtd().  signotify() already performs this check.

Submitted by:	Duane <parakleta@darkreality.org>
PR:	219228
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week


Changed paths

Path Details
Directoryhead/sys/kern/kern_sig.c modified , text changed

  ViewVC Help
Powered by ViewVC 1.1.27