diff options
author | Gedare Bloom <gedare@rtems.org> | 2016-06-23 16:10:39 -0400 |
---|---|---|
committer | Gedare Bloom <gedare@rtems.org> | 2016-07-25 12:44:47 -0400 |
commit | 127c20ebd7ec45be2849c82437ba5e33ebf1fd46 (patch) | |
tree | 73aca8b41311191c4ac98a110798913af2227281 /cpukit/posix/src/condtimedwait.c | |
parent | cpukit/rtems: fix return type mismatch for _TOD_To_seconds (diff) | |
download | rtems-127c20ebd7ec45be2849c82437ba5e33ebf1fd46.tar.bz2 |
posix: refactor cond wait support to defer abstime conversion
updates #2745
Diffstat (limited to 'cpukit/posix/src/condtimedwait.c')
-rw-r--r-- | cpukit/posix/src/condtimedwait.c | 25 |
1 files changed, 1 insertions, 24 deletions
diff --git a/cpukit/posix/src/condtimedwait.c b/cpukit/posix/src/condtimedwait.c index 1a2f5ff542..6c0b14f27b 100644 --- a/cpukit/posix/src/condtimedwait.c +++ b/cpukit/posix/src/condtimedwait.c @@ -31,32 +31,9 @@ int pthread_cond_timedwait( const struct timespec *abstime ) { - Watchdog_Interval ticks; - bool already_timedout; - TOD_Absolute_timeout_conversion_results status; - - /* - * POSIX requires that blocking calls with timeouts that take - * an absolute timeout must ignore issues with the absolute - * time provided if the operation would otherwise succeed. - * So we check the abstime provided, and hold on to whether it - * is valid or not. If it isn't correct and in the future, - * then we do a polling operation and convert the UNSATISFIED - * status into the appropriate error. - */ - already_timedout = false; - status = _TOD_Absolute_timeout_to_ticks(abstime, &ticks); - if ( status == TOD_ABSOLUTE_TIMEOUT_INVALID ) - return EINVAL; - - if ( status == TOD_ABSOLUTE_TIMEOUT_IS_IN_PAST || - status == TOD_ABSOLUTE_TIMEOUT_IS_NOW ) - already_timedout = true; - return _POSIX_Condition_variables_Wait_support( cond, mutex, - ticks, - already_timedout + abstime ); } |