diff options
Diffstat (limited to 'lib/time.c')
| -rw-r--r-- | lib/time.c | 9 |
1 files changed, 6 insertions, 3 deletions
@@ -1,3 +1,4 @@ +#include <signal.h> #include <time.h> #include <unistd.h> @@ -5,8 +6,10 @@ _syscall0(time_t, time); _syscall1(int, alarm, unsigned int, seconds); -void sleep(time_t t) { - time_t start = time(); +static void sleepsig(int sig) {} - while(time() < start + t); +void sleep(time_t t) { + signal(SIGALRM, &sleepsig); + alarm(t); + pause(); } |
