diff options
| author | Peter Wemm <peter@FreeBSD.org> | 1997-10-15 14:06:15 +0000 | 
|---|---|---|
| committer | Peter Wemm <peter@FreeBSD.org> | 1997-10-15 14:06:15 +0000 | 
| commit | 9f375c325294a527ade1e4293a019bb90cdaec89 (patch) | |
| tree | f834ab512c3eccd1a9267abd5f766d9d255cc5e2 | |
| parent | d4efecb283fb836470c61f9f32957c53f25c7421 (diff) | |
Notes
| -rw-r--r-- | lib/libc/gen/sleep.c | 70 | 
1 files changed, 0 insertions, 70 deletions
diff --git a/lib/libc/gen/sleep.c b/lib/libc/gen/sleep.c index 390478107755..5b96642d3f68 100644 --- a/lib/libc/gen/sleep.c +++ b/lib/libc/gen/sleep.c @@ -38,24 +38,11 @@ static char sccsid[] = "@(#)sleep.c	8.1 (Berkeley) 6/4/93";  #include <sys/time.h>  #include <signal.h>  #include <unistd.h> -#ifdef  _THREAD_SAFE -#include <pthread.h> -#include "pthread_private.h" -#endif - -#ifndef _THREAD_SAFE -static void -sleephandler() -{ -	return; -} -#endif	/* _THREAD_SAFE */  unsigned int  sleep(seconds)  	unsigned int seconds;  { -#ifdef _THREAD_SAFE  	struct timespec time_to_sleep;  	struct timespec time_remaining; @@ -68,61 +55,4 @@ sleep(seconds)  			seconds++;      /* round up */  	}  	return (seconds); -#else -	struct timespec time_to_sleep; -	struct timespec time_remaining; -	struct sigaction act, oact; -	sigset_t mask, omask; -	int alarm_blocked; - -	if (seconds != 0) { -		time_to_sleep.tv_sec = seconds; -		time_to_sleep.tv_nsec = 0; - -		/* Block SIGALRM while fiddling with it */ -		sigemptyset(&mask); -		sigaddset(&mask, SIGALRM); -		if (sigprocmask(SIG_BLOCK, &mask, &omask)) -			return (seconds); - -		/* Was SIGALRM blocked already? */ -		alarm_blocked = sigismember(&omask, SIGALRM); - -		if (!alarm_blocked) { -			/* -			 * Set up handler to interrupt signanosleep only if -			 * SIGALRM was unblocked. (Save some syscalls) -			 */ -			memset(&act, 0, sizeof(act)); -			act.sa_handler = sleephandler; -			if (sigaction(SIGALRM, &act, &oact)) { -				(void)sigprocmask(SIG_SETMASK, &omask, -						  (sigset_t *)0); -				return (seconds); -			} -		} - -  		/* -  		 * signanosleep() uses the given mask for the lifetime of -  		 * the syscall only - it resets on return.  Note that the -		 * old sleep() explicitly unblocks SIGALRM during the sleep, -		 * we don't do that now since we don't depend on SIGALRM -		 * to end the timeout.  If the process blocks SIGALRM, it -		 * gets what it asks for. -  		 */ -		(void)signanosleep(&time_to_sleep, &time_remaining, &omask); - -		if (!alarm_blocked) { -			/* Unwind */ -			(void)sigaction(SIGALRM, &oact, (struct sigaction *)0); -			(void)sigprocmask(SIG_SETMASK, &omask, (sigset_t *)0); -		} - -		/* return how long is left */ -		seconds = time_remaining.tv_sec; -		if (time_remaining.tv_nsec > 0) -			seconds++;      /* round up */ -	} -	return (seconds); -#endif	/* _THREAD_SAFE */  }  | 
