From: Diego Nieto Cid <[email protected]>
The Open Group Base Specifications Issue 8
getpriority ( https://pubs.opengroup.org/onlinepubs/9799919799/ )
<< The nice value is in the range [0,2*{NZERO} -1], while the
return value for getpriority() and the third parameter for
setpriority() are in the range [-{NZERO},{NZERO} -1]. >>
So given that NZERO is defined to 20, we shall use it to clamp to the range
specified by POSIX.
That range is then mapped to something similar to [0, 2*{NZERO}-1], as
specified by POSIX, through the usage of the macro NICE_TO_MACH_PRIORITY
and MACH_PRIORITY_TO_NICE. (i.e. [5, 45] )
---
sysdeps/mach/hurd/setpriority.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/sysdeps/mach/hurd/setpriority.c b/sysdeps/mach/hurd/setpriority.c
index 23d678bf40..8107098991 100644
--- a/sysdeps/mach/hurd/setpriority.c
+++ b/sysdeps/mach/hurd/setpriority.c
@@ -28,7 +28,7 @@ __setpriority (enum __priority_which which, id_t who, int
prio)
error_t pidloser, priloser;
unsigned int npids, ntasks, nwin, nperm, nacces;
- prio = MAX (0, MIN (2 * NZERO - 1, prio));
+ prio = MAX ((-NZERO), MIN ((NZERO - 1), prio));
error_t setonepriority (pid_t pid, struct procinfo *pi)
{
--
2.53.0