From e72d995a80461203e99c812afc7e0b660ed341d7 Mon Sep 17 00:00:00 2001 From: Joel Sherrill Date: Fri, 31 May 1996 19:01:26 +0000 Subject: moved sleep() from psignal.c to unistd.c implemented sigemptyset() sigfillset(), sigaddset(), sigdelset(), and sigismember(). added checks for valid attribute values to some of the pthread_attr_t sets. --- cpukit/posix/src/time.c | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) (limited to 'cpukit/posix/src/time.c') diff --git a/cpukit/posix/src/time.c b/cpukit/posix/src/time.c index 7397635786..f9e5ce835f 100644 --- a/cpukit/posix/src/time.c +++ b/cpukit/posix/src/time.c @@ -298,12 +298,15 @@ int nanosleep( { Watchdog_Interval ticks; + if ( rqtp->tv_nsec < 0 || rqtp->tv_nsec >= TOD_NANOSECONDS_PER_SECOND ) { + errno = EINVAL; + return -1; + } + /* XXX this is interruptible by a posix signal */ /* XXX rmtp is the time remaining on the timer -- we do not support this */ -/* XXX rmtp may be NULL */ - ticks = _POSIX_Time_Spec_to_interval( rqtp ); _Thread_Disable_dispatch(); @@ -316,7 +319,12 @@ int nanosleep( ); _Watchdog_Insert_ticks( &_Thread_Executing->Timer, ticks ); _Thread_Enable_dispatch(); - return 0; /* XXX should account for signal/remaining */ + + if ( rmtp ) { + /* XXX calculate time remaining */ + } + + return 0; /* XXX should account for signal */ } -- cgit v1.2.3