diff options
author | Christopher Faylor <me@cgf.cx> | 2009-07-17 16:54:21 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2009-07-17 16:54:21 +0000 |
commit | d2445fa2cc4f8ce1021e75e1a690083ea6b0db7e (patch) | |
tree | b34ea46eb2ab3d6045053d01ab167308e0906544 /winsup | |
parent | 8319377680efac1de4ee3c1dee37c1494042304b (diff) | |
download | cygnal-d2445fa2cc4f8ce1021e75e1a690083ea6b0db7e.tar.gz cygnal-d2445fa2cc4f8ce1021e75e1a690083ea6b0db7e.tar.bz2 cygnal-d2445fa2cc4f8ce1021e75e1a690083ea6b0db7e.zip |
* cygtls.cc (_cygtls::init_exception_handler): Avoid adding our exception
handler twice.
Diffstat (limited to 'winsup')
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/cygtls.cc | 3 |
2 files changed, 8 insertions, 0 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 71dbae4ed..b1684c608 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +2009-07-17 Christopher Faylor <me+cygwin@cgf.cx> + + * cygtls.cc (_cygtls::init_exception_handler): Avoid adding our + exception handler twice. + 2009-07-17 Corinna Vinschen <corinna@vinschen.de> * syscalls.cc (unlink_nt): Just return when a sharing violation diff --git a/winsup/cygwin/cygtls.cc b/winsup/cygwin/cygtls.cc index 1b1ca114b..f474d9b35 100644 --- a/winsup/cygwin/cygtls.cc +++ b/winsup/cygwin/cygtls.cc @@ -228,6 +228,9 @@ extern exception_list *_except_list asm ("%fs:0"); void _cygtls::init_exception_handler (exception_handler *eh) { + for (exception_list *e = _except_list; e->prev != NULL && e->prev != (exception_list *)-1; e = e->prev) + if (e == &el) + return; el.handler = eh; /* Apparently Windows stores some information about an exception and tries to figure out if the SEH which returned 0 last time actually solved the |