summaryrefslogtreecommitdiff
path: root/lib/libpthread/uthread/uthread_sig.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/libpthread/uthread/uthread_sig.c')
-rw-r--r--lib/libpthread/uthread/uthread_sig.c18
1 files changed, 12 insertions, 6 deletions
diff --git a/lib/libpthread/uthread/uthread_sig.c b/lib/libpthread/uthread/uthread_sig.c
index c13d2050441..2755ba4747a 100644
--- a/lib/libpthread/uthread/uthread_sig.c
+++ b/lib/libpthread/uthread/uthread_sig.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: uthread_sig.c,v 1.10 2001/11/05 22:53:28 marc Exp $ */
+/* $OpenBSD: uthread_sig.c,v 1.11 2001/12/18 03:47:52 marc Exp $ */
/*
* Copyright (c) 1995-1998 John Birrell <jb@cimlogic.com.au>
* All rights reserved.
@@ -93,11 +93,17 @@ _thread_sig_handler(int sig, int code, struct sigcontext * scp)
*/
_thread_kern_sched(scp);
- /*
- * This point should not be reached, so abort the
- * process:
- */
- PANIC("Returned to signal function from scheduler");
+ /* The scheduler currently returns here instead
+ of calling sigreturn due to a sparc sigreturn
+ bug. We should also return. That brings
+ us back to the sigtramp code which will
+ sigreturn to the context stored on the current
+ stack (which is the same as scp, above).
+ The code originally did this:
+
+ PANIC("Returned to signal function from scheduler");
+ */
+ return;
}
}
/*