headers/bsd: Add sys/queue.h.
[haiku.git] / src / system / libroot / posix / unistd / alarm.c
blob59ab96665850b2fe1bbf40a524eaa0c2bf9da64e
1 /*
2 ** Copyright 2004, Axel Dörfler, axeld@pinc-software.de. All rights reserved.
3 ** Distributed under the terms of the Haiku License.
4 */
7 #include <errno.h>
8 #include <unistd.h>
9 #include <sys/time.h>
11 #include <errno_private.h>
12 #include <syscalls.h>
15 uint
16 alarm(unsigned int sec)
18 struct itimerval value, oldValue;
20 value.it_interval.tv_sec = value.it_interval.tv_usec = 0;
21 value.it_value.tv_sec = sec;
22 value.it_value.tv_usec = 0;
23 if (setitimer(ITIMER_REAL, &value, &oldValue) < 0)
24 return -1;
26 if (oldValue.it_value.tv_usec)
27 oldValue.it_value.tv_sec++;
29 return oldValue.it_value.tv_sec;