aboutsummaryrefslogtreecommitdiffstats
path: root/src/libstddjb/alarm_timeout.c
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2025-05-17 22:53:01 +0000
committerLaurent Bercot <ska@appnovation.com>2025-05-17 22:53:01 +0000
commit0166e83ac731a0c5803db22471a2c936b0567a64 (patch)
tree05a3ed93771fc83c72351ee78698f4b07701a36e /src/libstddjb/alarm_timeout.c
parentf40d8d198eea1d91f092c09ee738f751ada741bc (diff)
downloadskalibs-0166e83ac731a0c5803db22471a2c936b0567a64.tar.gz
Clamp setitimer to 1e8 seconds because MacOS
Signed-off-by: Laurent Bercot <ska@appnovation.com>
Diffstat (limited to 'src/libstddjb/alarm_timeout.c')
-rw-r--r--src/libstddjb/alarm_timeout.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/src/libstddjb/alarm_timeout.c b/src/libstddjb/alarm_timeout.c
index 8ce5d3d..f887121 100644
--- a/src/libstddjb/alarm_timeout.c
+++ b/src/libstddjb/alarm_timeout.c
@@ -42,8 +42,9 @@ int alarm_timeout (tain const *tto)
#else
#ifdef SKALIBS_HASITIMER
-#include <limits.h>
#include <sys/time.h>
+#include <errno.h>
+#include <limits.h>
int alarm_timeout (tain const *tto)
{
@@ -53,7 +54,12 @@ int alarm_timeout (tain const *tto)
it.it_value.tv_sec = INT_MAX ;
it.it_value.tv_usec = 0 ;
}
- if (setitimer(ITIMER_REAL, &it, 0) < 0) return 0 ;
+ if (setitimer(ITIMER_REAL, &it, 0) < 0)
+ {
+ if (errno != EINVAL) return 0 ;
+ it.it_Value.tv_sec = 9999999 ;
+ if (setitimer(ITIMER_REAL, &it, 0) < 0) return 0 ;
+ }
return 1 ;
}