diff options
author | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-08-12 19:55:09 +0000 |
---|---|---|
committer | Joel Sherrill <joel.sherrill@OARcorp.com> | 1996-08-12 19:55:09 +0000 |
commit | 5f08fd6179986138e724eb3bf1c495de090cab63 (patch) | |
tree | 72c5a0bbea6da2a39fcb9195a09b330fcb2e33cb | |
parent | added test cases for clock_gettime (invalid id), clock_settime (invalid_id), (diff) | |
download | rtems-5f08fd6179986138e724eb3bf1c495de090cab63.tar.bz2 |
nanosleep: verify rqtp parameter is non-NULL.
nanosleep: return 0 time remaining for a yield case.
-rw-r--r-- | c/src/exec/posix/src/time.c | 7 | ||||
-rw-r--r-- | cpukit/posix/src/time.c | 7 |
2 files changed, 14 insertions, 0 deletions
diff --git a/c/src/exec/posix/src/time.c b/c/src/exec/posix/src/time.c index cc501f464b..5e202111dd 100644 --- a/c/src/exec/posix/src/time.c +++ b/c/src/exec/posix/src/time.c @@ -247,6 +247,9 @@ int nanosleep( { Watchdog_Interval ticks; + if ( !rqtp ) + set_errno_and_return_minus_one( EINVAL ); + /* * Return EAGAIN if the delay interval is negative. * @@ -272,6 +275,10 @@ int nanosleep( if ( !ticks ) { _Thread_Yield_processor(); _Thread_Dispatch(); + if ( rmtp ) { + rmtp->tv_sec = 0; + rmtp->tv_nsec = 0; + } return 0; } diff --git a/cpukit/posix/src/time.c b/cpukit/posix/src/time.c index cc501f464b..5e202111dd 100644 --- a/cpukit/posix/src/time.c +++ b/cpukit/posix/src/time.c @@ -247,6 +247,9 @@ int nanosleep( { Watchdog_Interval ticks; + if ( !rqtp ) + set_errno_and_return_minus_one( EINVAL ); + /* * Return EAGAIN if the delay interval is negative. * @@ -272,6 +275,10 @@ int nanosleep( if ( !ticks ) { _Thread_Yield_processor(); _Thread_Dispatch(); + if ( rmtp ) { + rmtp->tv_sec = 0; + rmtp->tv_nsec = 0; + } return 0; } |