diff options
author | Christopher Faylor <me@cgf.cx> | 2000-03-05 06:34:55 +0000 |
---|---|---|
committer | Christopher Faylor <me@cgf.cx> | 2000-03-05 06:34:55 +0000 |
commit | 68997e887db7fdedb8f1ca138539a699d9a6d30e (patch) | |
tree | 0190e44dc73bdd4a71f84254a4daf3aa3bef3ad6 /winsup/cygwin/exceptions.cc | |
parent | ed8e99bf3792cbb3d9e462fcd959c98425f6e4bc (diff) | |
download | cygnal-68997e887db7fdedb8f1ca138539a699d9a6d30e.tar.gz cygnal-68997e887db7fdedb8f1ca138539a699d9a6d30e.tar.bz2 cygnal-68997e887db7fdedb8f1ca138539a699d9a6d30e.zip |
* exceptions.cc (call_handler): Streamline to use only one call to
ResumeThread.
* sigproc.cc (sig_send): Use a muto around the ReleaseSemaphore. Remove
priority setting since it didn't solve anything.
Diffstat (limited to 'winsup/cygwin/exceptions.cc')
-rw-r--r-- | winsup/cygwin/exceptions.cc | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/winsup/cygwin/exceptions.cc b/winsup/cygwin/exceptions.cc index dfacbc935..dae689285 100644 --- a/winsup/cygwin/exceptions.cc +++ b/winsup/cygwin/exceptions.cc @@ -719,7 +719,7 @@ call_handler (int sig, struct sigaction& siga, void *handler) SetEvent (signal_arrived); // For an EINTR case sigproc_printf ("armed signal_arrived"); exec_exit = sig; // Maybe we'll exit with this value - goto out; + goto out1; } hth = myself->getthread2signal (); @@ -749,7 +749,7 @@ call_handler (int sig, struct sigaction& siga, void *handler) Sleep (0); } - sigproc_printf ("suspend said %d, %E", res); + sigproc_printf ("SuspendThread returned %d", res); if (sigsave.cx) { @@ -764,7 +764,6 @@ call_handler (int sig, struct sigaction& siga, void *handler) if (!GetThreadContext (hth, cx)) { system_printf ("couldn't get context of main thread, %E"); - ResumeThread (hth); goto out; } } @@ -787,9 +786,11 @@ call_handler (int sig, struct sigaction& siga, void *handler) proc_subproc(PROC_CLEARWAIT, 1); } - (void) ResumeThread (hth); - out: + res = ResumeThread (hth); + sigproc_printf ("ResumeThread returned %d", res); + +out1: sigproc_printf ("returning %d", interrupted); return interrupted; } @@ -1046,6 +1047,9 @@ events_init (void) *end = '\0'; } windows_system_directory_length = end - windows_system_directory; + debug_printf ("windows_system_directory '%s', windows_system_directory_length %d", + windows_system_directory, windows_system_directory_length); + debug_printf ("cygwin_hmodule %p", cygwin_hmodule); } void |