summaryrefslogtreecommitdiffstats
path: root/lib/libkse
diff options
context:
space:
mode:
authordeischen <deischen@FreeBSD.org>2001-06-29 17:09:07 +0000
committerdeischen <deischen@FreeBSD.org>2001-06-29 17:09:07 +0000
commit5cd1eeb5568c1d6e98f172c805b52e5a6eea80bd (patch)
treeb1f24217eca197c95d265752e36773cf443e5e17 /lib/libkse
parentd09374546289774e050e84f65ff80b9dbf1764e8 (diff)
downloadFreeBSD-src-5cd1eeb5568c1d6e98f172c805b52e5a6eea80bd.zip
FreeBSD-src-5cd1eeb5568c1d6e98f172c805b52e5a6eea80bd.tar.gz
Clear the in thread scheduler flag after jumping to the start of
a signal handler from the scheduler. MFC after: 1 week
Diffstat (limited to 'lib/libkse')
-rw-r--r--lib/libkse/thread/thr_sig.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/libkse/thread/thr_sig.c b/lib/libkse/thread/thr_sig.c
index fd5180c..9ca197e 100644
--- a/lib/libkse/thread/thr_sig.c
+++ b/lib/libkse/thread/thr_sig.c
@@ -932,6 +932,12 @@ _thread_sig_wrapper(void)
thread->curframe = NULL;
PTHREAD_ASSERT(psf != NULL, "Invalid signal frame in signal handler");
+ /*
+ * We're coming from the kernel scheduler; clear the in
+ * scheduler flag:
+ */
+ _thread_kern_in_sched = 0;
+
/* Check the threads previous state: */
if (psf->saved_state.psd_state != PS_RUNNING) {
/*
OpenPOWER on IntegriCloud