diff options
author | Gedare Bloom <gedare@rtems.org> | 2016-06-09 11:33:15 -0400 |
---|---|---|
committer | Gedare Bloom <gedare@rtems.org> | 2016-07-25 12:44:47 -0400 |
commit | f23d4706169d68d3c4e90b297650f89c272716f4 (patch) | |
tree | 333bdc4b4be2ec4ad7ee80ee03229759ec60602a /cpukit/score/src/mutex.c | |
parent | score: Fix for RTEMS_DEBUG (diff) | |
download | rtems-f23d4706169d68d3c4e90b297650f89c272716f4.tar.bz2 |
cpukit: Add and use Watchdog_Discipline.
Clock disciplines may be WATCHDOG_RELATIVE, WATCHDOG_ABSOLUTE,
or WATCHDOG_NO_TIMEOUT. A discipline of WATCHDOG_RELATIVE with
a timeout of WATCHDOG_NO_TIMEOUT is equivalent to a discipline
of WATCHDOG_NO_TIMEOUT.
updates #2732
Diffstat (limited to 'cpukit/score/src/mutex.c')
-rw-r--r-- | cpukit/score/src/mutex.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/cpukit/score/src/mutex.c b/cpukit/score/src/mutex.c index ed374a0768..ed600b3ec2 100644 --- a/cpukit/score/src/mutex.c +++ b/cpukit/score/src/mutex.c @@ -104,7 +104,6 @@ static void _Mutex_Acquire_slow( Mutex_Control *mutex, Thread_Control *owner, Thread_Control *executing, - Watchdog_Interval timeout, Thread_queue_Context *queue_context ) { @@ -115,7 +114,6 @@ static void _Mutex_Acquire_slow( MUTEX_TQ_OPERATIONS, executing, STATES_WAITING_FOR_SYS_LOCK_MUTEX, - timeout, queue_context ); } @@ -219,7 +217,8 @@ void _Mutex_Acquire( struct _Mutex_Control *_mutex ) ++executing->resource_count; _Mutex_Queue_release( mutex, &queue_context ); } else { - _Mutex_Acquire_slow( mutex, owner, executing, 0, &queue_context ); + _Thread_queue_Context_set_no_timeout( &queue_context ); + _Mutex_Acquire_slow( mutex, owner, executing, &queue_context ); } } @@ -260,7 +259,8 @@ int _Mutex_Acquire_timed( break; } - _Mutex_Acquire_slow( mutex, owner, executing, ticks, &queue_context ); + _Thread_queue_Context_set_relative_timeout( &queue_context, ticks ); + _Mutex_Acquire_slow( mutex, owner, executing, &queue_context ); return STATUS_GET_POSIX( _Thread_Wait_get_status( executing ) ); } @@ -336,7 +336,8 @@ void _Mutex_recursive_Acquire( struct _Mutex_recursive_Control *_mutex ) ++mutex->nest_level; _Mutex_Queue_release( &mutex->Mutex, &queue_context ); } else { - _Mutex_Acquire_slow( &mutex->Mutex, owner, executing, 0, &queue_context ); + _Thread_queue_Context_set_no_timeout( &queue_context ); + _Mutex_Acquire_slow( &mutex->Mutex, owner, executing, &queue_context ); } } @@ -382,13 +383,8 @@ int _Mutex_recursive_Acquire_timed( break; } - _Mutex_Acquire_slow( - &mutex->Mutex, - owner, - executing, - ticks, - &queue_context - ); + _Thread_queue_Context_set_relative_timeout( &queue_context, ticks ); + _Mutex_Acquire_slow( &mutex->Mutex, owner, executing, &queue_context ); return STATUS_GET_POSIX( _Thread_Wait_get_status( executing ) ); } |