diff options
author | Christopher Faylor <me@cgf.cx> | 2000-10-19 17:57:28 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-10-19 17:57:28 +0000 |
commit | 167095f6c0e99025764ea231f11b58c0b9f2685d (patch) | |
tree | f6a38daafbd77074054d95430ec5716eb0df8e6a /winsup/cygwin/exceptions.cc | |
parent | 2556e737ec044e39cd8afc6f00cd0f156b9d6ede (diff) | |
download | cygnal-167095f6c0e99025764ea231f11b58c0b9f2685d.tar.gz cygnal-167095f6c0e99025764ea231f11b58c0b9f2685d.tar.bz2 cygnal-167095f6c0e99025764ea231f11b58c0b9f2685d.zip |
* dcrt0.cc (sigthread::init): Correct overzealous ifdef.
* exceptions.cc (call_handler): Avoid calling sigthread acquire lock.
* sigproc.h (sigthread): Comment out lock for now.
* sync.cc (muto::acquire): Add a minor optimization.
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r-- | winsup/cygwin/exceptions.cc | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index c4b87f0ec..0054b1a2c 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -709,7 +709,9 @@ call_handler (int sig, struct sigaction& siga, void *handler) int res; int using_mainthread_frame; +#if 0 mainthread.lock->acquire (); +#endif if (sigsave.sig) goto set_pending; @@ -723,7 +725,9 @@ call_handler (int sig, struct sigaction& siga, void *handler) { int i; using_mainthread_frame = 0; +#if 0 mainthread.lock->release (); +#endif hth = myself->getthread2signal (); /* Suspend the thread which will receive the signal. But first ensure that @@ -747,14 +751,18 @@ call_handler (int sig, struct sigaction& siga, void *handler) if (m->unstable () || m->owner () == mainthread.id) goto owns_muto; +#if 0 mainthread.lock->acquire (); +#endif if (mainthread.frame) { ebp = mainthread.frame; /* try to avoid a race */ using_mainthread_frame = 1; goto next; } +#if 0 mainthread.lock->release (); +#endif cx.ContextFlags = CONTEXT_CONTROL | CONTEXT_INTEGER; if (!GetThreadContext (hth, &cx)) @@ -816,7 +824,9 @@ out: sigproc_printf ("ResumeThread returned %d", res); } +#if 0 mainthread.lock->release (); +#endif sigproc_printf ("returning %d", interrupted); return interrupted; |