]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
hurd: Make setitimer clear interval on value being 0 master
authorSamuel Thibault <samuel.thibault@ens-lyon.org>
Wed, 22 Jul 2026 20:24:29 +0000 (22:24 +0200)
committerSamuel Thibault <samuel.thibault@ens-lyon.org>
Wed, 22 Jul 2026 20:26:20 +0000 (22:26 +0200)
posix says value being 0 means disabling a timer, regardless of the
interval, so we should clear the interval in that case, so a further
setitimer call does not see a non-zero interval.

sysdeps/mach/hurd/setitimer.c

index 265576e00e872b664885e61e9fc5476fe7c8ddc5..d0bca8915781c31d44836ccff96df500e1ac7e01 100644 (file)
@@ -271,7 +271,10 @@ setitimer_locked (const struct itimerval *new, struct itimerval *old)
     }
 
   /* Load the new itimer value.  */
-  _hurd_itimerval = newval;
+  if ((newval.it_value.tv_sec | newval.it_value.tv_usec) != 0)
+    _hurd_itimerval = newval;
+  else
+    _hurd_itimerval = (struct itimerval) { };
 
   if ((newval.it_value.tv_sec | newval.it_value.tv_usec) == 0)
     {