From 6df5acf970852a94b254800dc69569bd1f4c9ae8 Mon Sep 17 00:00:00 2001 From: Karel Zak Date: Wed, 24 Oct 2018 12:28:13 +0200 Subject: lib/timer: add fallback if timer_create() not available * add struct ul_timer as API abstraction to hide differences between timer_create() and setitimer() * add setitimer() detection to ./configure.ac * add fallback code to use setitimer() if timer_create() not available (for example on OSX) Addresses: https://github.com/karelzak/util-linux/issues/584 Signed-off-by: Karel Zak --- include/timer.h | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'include/timer.h') diff --git a/include/timer.h b/include/timer.h index aa9f9c018..70da1ba9e 100644 --- a/include/timer.h +++ b/include/timer.h @@ -4,8 +4,19 @@ #include #include -extern int setup_timer(timer_t * t_id, struct itimerval *timeout, +#ifdef HAVE_TIMER_CREATE +struct ul_timer { + timer_t t_id; +}; +#else +struct ul_timer { + struct itimerval old_timer; + struct sigaction old_sa; +}; +#endif + +extern int setup_timer(struct ul_timer *timer, struct itimerval *timeout, void (*timeout_handler)(int, siginfo_t *, void *)); -extern void cancel_timer(timer_t * t_id); +extern void cancel_timer(struct ul_timer *timer); #endif /* UTIL_LINUX_TIMER_H */ -- cgit v1.2.3-55-g7522