diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog index 0c5892e76..485e04eb3 100644 --- a/winsup/cygwin/ChangeLog +++ b/winsup/cygwin/ChangeLog @@ -1,3 +1,8 @@ +Tue Feb 29 00:46:09 2000 Christopher Faylor + + * sigproc.cc (sig_send): Temporarily set priority to highest while + sending a signal. + Mon Feb 28 11:23:29 2000 Christopher Faylor * pinfo.cc (set_myself): Add build date to strace output. diff --git a/winsup/cygwin/sigproc.cc b/winsup/cygwin/sigproc.cc index 59d18a54b..0c26f2f93 100644 --- a/winsup/cygwin/sigproc.cc +++ b/winsup/cygwin/sigproc.cc @@ -776,7 +776,10 @@ sig_send (pinfo *p, int sig) /* Notify the process that a signal has arrived. */ + int prio; SetLastError (0); + prio = GetThreadPriority (GetCurrentThread ()); + (void) SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_TIME_CRITICAL); if (!ReleaseSemaphore (thiscatch, 1, NULL) && (int) GetLastError () > 0) { /* Couldn't signal the semaphore. This probably means that the @@ -826,6 +829,8 @@ sig_send (pinfo *p, int sig) rc = WAIT_OBJECT_0; } + SetThreadPriority (GetCurrentThread (), prio); + if (rc == WAIT_OBJECT_0) rc = 0; // Successful exit else