summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/thread.cc8
2 files changed, 13 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index 773636a04..d4cdcc213 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,5 +1,10 @@
2003-10-31 Thomas Pfaff <tpfaff@gmx.net>
+ * thread.cc (pthread::thread_init_wrapper): Initialize exception
+ handling.
+
+2003-10-31 Thomas Pfaff <tpfaff@gmx.net>
+
Rename pthread::running to pthread::valid throughout.
* thread.h: (pthread::suspend_all_except_self): New static method.
diff --git a/winsup/cygwin/thread.cc b/winsup/cygwin/thread.cc
index fce49091f..35f9f50bc 100644
--- a/winsup/cygwin/thread.cc
+++ b/winsup/cygwin/thread.cc
@@ -38,6 +38,7 @@ details. */
#include "pinfo.h"
#include "perprocess.h"
#include "security.h"
+#include "exceptions.h"
#include <semaphore.h>
#include <stdio.h>
#include <sys/timeb.h>
@@ -1894,6 +1895,13 @@ pthread::thread_init_wrapper (void *_arg)
struct sigaction _sigs[NSIG];
sigset_t _sig_mask; /* one set for everything to ignore. */
+ /* According to onno@stack.urc.tue.nl, the exception handler record must
+ be on the stack. */
+ exception_list cygwin_except_entry;
+
+ /* Initialize SIGSEGV handling, etc. */
+ init_exceptions (&cygwin_except_entry);
+
// setup signal structures
thread->sigs = _sigs;
thread->sigmask = &_sig_mask;