gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[GNUnet-SVN] r14252 - gnunet/src/util


From: gnunet
Subject: [GNUnet-SVN] r14252 - gnunet/src/util
Date: Tue, 25 Jan 2011 11:33:36 +0100

Author: grothoff
Date: 2011-01-25 11:33:36 +0100 (Tue, 25 Jan 2011)
New Revision: 14252

Modified:
   gnunet/src/util/os_priority.c
Log:
undo

Modified: gnunet/src/util/os_priority.c
===================================================================
--- gnunet/src/util/os_priority.c       2011-01-24 21:35:50 UTC (rev 14251)
+++ gnunet/src/util/os_priority.c       2011-01-25 10:33:36 UTC (rev 14252)
@@ -320,12 +320,33 @@
     SetPriorityClass (h, rprio);
   }
 #elif LINUX 
-  if (0 != setpriority (PRIO_PROCESS, proc->pid, rprio))
+  pid_t pid;
+
+  pid = proc->pid;
+  if ( (0 == pid) ||
+       (pid == getpid () ) )
     {
-      GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING |
-                          GNUNET_ERROR_TYPE_BULK, "setpriority");
-      return GNUNET_SYSERR;
+      int have = nice (0);
+      int delta = rprio - have;
+      errno = 0;
+      if ( (delta != 0) &&
+          (rprio == nice (delta)) && 
+          (errno != 0) )
+        {
+          GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING |
+                               GNUNET_ERROR_TYPE_BULK, "nice");
+          return GNUNET_SYSERR;
+        }
     }
+  else
+    {
+      if (0 != setpriority (PRIO_PROCESS, pid, rprio))
+        {
+          GNUNET_log_strerror (GNUNET_ERROR_TYPE_WARNING |
+                               GNUNET_ERROR_TYPE_BULK, "setpriority");
+          return GNUNET_SYSERR;
+        }
+    }
 #else
   GNUNET_log (GNUNET_ERROR_TYPE_DEBUG | GNUNET_ERROR_TYPE_BULK,
              "Priority management not availabe for this platform\n");




reply via email to

[Prev in Thread] Current Thread [Next in Thread]