diff toys/nice.c @ 649:2364ace48ab1

Bugfix from Avery Pennarun: getpriority() uses a different range than nice(), so follow thenice man page and zero errno then check it if nice returns -1.
author Rob Landley <rob@landley.net>
date Thu, 16 Aug 2012 22:24:30 -0500
parents b51faa4fe8e6
children
line wrap: on
line diff
--- a/toys/nice.c	Wed Aug 15 12:53:54 2012 +0200
+++ b/toys/nice.c	Thu Aug 16 22:24:30 2012 -0500
@@ -34,9 +34,8 @@
 {
 	if (!toys.optflags) TT.priority = 10;
 
-	nice(TT.priority);
-	if (getpriority(PRIO_PROCESS, getpid()) != TT.priority)
-		perror_exit("Can't set priority");
+	errno = 0;
+	if (nice(TT.priority)==-1 && errno) perror_exit("Can't set priority");
 
 	xexec(toys.optargs);
 }