27 lines
		
	
	
		
			650 B
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			27 lines
		
	
	
		
			650 B
		
	
	
	
		
			C
		
	
	
		
			Executable File
		
	
	
	
	
/*	sleep() - Sleep for a number of seconds.	Author: Erik van der Kouwe
 | 
						|
 *								25 July 2009
 | 
						|
 * (Avoids interfering with alarm/setitimer by using select, like usleep)
 | 
						|
 */
 | 
						|
 | 
						|
#include <lib.h>
 | 
						|
#define sleep _sleep
 | 
						|
#include <signal.h>
 | 
						|
#include <unistd.h>
 | 
						|
#include <errno.h>
 | 
						|
#include <time.h>
 | 
						|
#include <sys/select.h>
 | 
						|
#include <sys/time.h>
 | 
						|
 | 
						|
unsigned sleep(unsigned sleep_seconds)
 | 
						|
{
 | 
						|
	struct timespec rqtp, rmtp;
 | 
						|
 | 
						|
	/* nanosleep implements this call; ignore failure, it cannot be reported */
 | 
						|
	rqtp.tv_sec = sleep_seconds;
 | 
						|
	rqtp.tv_nsec = 0;
 | 
						|
	nanosleep(&rqtp, &rmtp);
 | 
						|
 | 
						|
	/* round remainder up to seconds */
 | 
						|
	return rmtp.tv_sec + ((rmtp.tv_nsec > 0) ? 1 : 0);
 | 
						|
}
 |