diff options
author | deischen <deischen@FreeBSD.org> | 2000-12-20 16:55:57 +0000 |
---|---|---|
committer | deischen <deischen@FreeBSD.org> | 2000-12-20 16:55:57 +0000 |
commit | 3ca85b60efe87eb2224bb1d8359e7deefc5be176 (patch) | |
tree | 5d47975faece0bfb1e15f9b0036e9d8da1e4cbe8 /lib/libpthread | |
parent | 6534e32f7da1c3ecd595be3c59249e9c48ad55db (diff) | |
download | FreeBSD-src-3ca85b60efe87eb2224bb1d8359e7deefc5be176.zip FreeBSD-src-3ca85b60efe87eb2224bb1d8359e7deefc5be176.tar.gz |
Enable check for pending signals after calling a signal handler.
Restoration of a threads signal mask after invocation of a signal
handler may allow pending signals to become deliverable.
PR: 23647
Diffstat (limited to 'lib/libpthread')
-rw-r--r-- | lib/libpthread/thread/thr_kern.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/lib/libpthread/thread/thr_kern.c b/lib/libpthread/thread/thr_kern.c index 01faece..6f4bb6e 100644 --- a/lib/libpthread/thread/thr_kern.c +++ b/lib/libpthread/thread/thr_kern.c @@ -90,6 +90,9 @@ _thread_kern_sched_frame(struct pthread_signal_frame *psf) /* Restore the signal frame: */ _thread_sigframe_restore(_thread_run, psf); + /* The signal mask was restored; check for any pending signals: */ + _thread_run->check_pending = 1; + /* Switch to the thread scheduler: */ ___longjmp(_thread_kern_sched_jb, 1); } |