OSDN Git Service

* pinfo.cc (_pinfo::commune_send): Set priority low when sleeping, waiting for
authorcgf <cgf>
Tue, 5 Nov 2002 04:43:01 +0000 (04:43 +0000)
committercgf <cgf>
Tue, 5 Nov 2002 04:43:01 +0000 (04:43 +0000)
commune completion so that we don't spin waiting for lower priority processes.

winsup/cygwin/ChangeLog
winsup/cygwin/pinfo.cc

index 4bffe21..c685178 100644 (file)
@@ -1,5 +1,11 @@
 2002-11-04  Christopher Faylor  <cgf@redhat.com>
 
+       * pinfo.cc (_pinfo::commune_send): Set priority low when sleeping,
+       waiting for commune completion so that we don't spin waiting for lower
+       priority processes.
+
+2002-11-04  Christopher Faylor  <cgf@redhat.com>
+
        * sigproc.cc (WAIT_SIG_PRIORITY): Bump to THREAD_PRIORITY_TIME_CRITICAL.
 
 2002-11-04  Christopher Faylor  <cgf@redhat.com>
index 0f9510f..f47e3bd 100644 (file)
@@ -362,12 +362,17 @@ _pinfo::commune_send (DWORD code)
   if (sig_send (this, __SIGCOMMUNE))
     goto err;
 
+  /* FIXME: Need something better than an busy loop here */
   bool isalive;
   while ((isalive = alive ()))
     if (myself->hello_pid <= 0)
       break;
     else
-      Sleep (0);
+      {
+       DWORD prio = SetThreadPriority (GetCurrentThread (), THREAD_PRIORITY_IDLE);
+       Sleep (0);
+       SetThreadPriority (GetCurrentThread (), prio);
+      }
 
   CloseHandle (tome);
   tome = NULL;