mirror of
https://gitlab.rtems.org/rtems/rtos/rtems.git
synced 2026-08-27 00:13:46 +08:00
nanosleep: verify rqtp parameter is non-NULL.
nanosleep: return 0 time remaining for a yield case.
This commit is contained in:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user