X-Git-Url: https://erislabs.net/gitweb/?a=blobdiff_plain;f=lib%2Fnanosleep.c;h=c0c135687daefeed78411a3984c665df5908d0c1;hb=3b3e7e80daac86fbdded8b0047a4a52ec2324ab8;hp=1f17c09cf51eb11404e6c8d2e1a2fea6ca7fd337;hpb=c22596ddde51626c839f6128623f0f5eb3483603;p=gnulib.git diff --git a/lib/nanosleep.c b/lib/nanosleep.c index 1f17c09cf..c0c135687 100644 --- a/lib/nanosleep.c +++ b/lib/nanosleep.c @@ -18,6 +18,11 @@ /* written by Jim Meyering */ #include + +/* Undefine nanosleep here so any prototype is not redefined to be a + prototype for rpl_nanosleep. (they'd conflict e.g., on alpha-dec-osf3.2) */ +#undef nanosleep + #include #include #include @@ -31,6 +36,13 @@ extern int errno; # include #endif +/* Some systems (MSDOS) don't have SIGCONT. + Using SIGTERM here turns the signal-handling code below + into a no-op on such systems. */ +#ifndef SIGCONT +# define SIGCONT SIGTERM +#endif + #include "nanosleep.h" static int suspended; @@ -58,10 +70,10 @@ my_usleep (const struct timespec *ts_delay) /* FIXME: comment */ int -nanosleep (const struct timespec *requested_delay, - struct timespec *remaining_delay) +rpl_nanosleep (const struct timespec *requested_delay, + struct timespec *remaining_delay) { -#ifdef SA_INTERRUPT +#ifdef SA_NOCLDSTOP struct sigaction oldact, newact; #endif @@ -70,7 +82,7 @@ nanosleep (const struct timespec *requested_delay, /* set up sig handler */ if (first_call) { -#ifdef SA_INTERRUPT +#ifdef SA_NOCLDSTOP newact.sa_handler = sighandler; sigemptyset (&newact.sa_mask); newact.sa_flags = 0;