diff options
Diffstat (limited to 'cpukit/score/src/apimutexlock.c')
-rw-r--r-- | cpukit/score/src/apimutexlock.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/cpukit/score/src/apimutexlock.c b/cpukit/score/src/apimutexlock.c index 312dcc2993..46a48a3e50 100644 --- a/cpukit/score/src/apimutexlock.c +++ b/cpukit/score/src/apimutexlock.c @@ -20,30 +20,18 @@ #endif #include <rtems/score/apimutex.h> -#include <rtems/score/coremuteximpl.h> #include <rtems/score/threadimpl.h> void _API_Mutex_Lock( API_Mutex_Control *the_mutex ) { - Thread_Life_state previous_thread_life_state; - Thread_queue_Context queue_context; + Thread_Life_state previous_thread_life_state; previous_thread_life_state = _Thread_Set_life_protection( THREAD_LIFE_PROTECTED ); - _Thread_queue_Context_initialize( &queue_context ); - _ISR_lock_ISR_disable( &queue_context.Lock_context.Lock_context ); - _Thread_queue_Context_set_enqueue_do_nothing_extra( &queue_context ); - _CORE_recursive_mutex_Seize( - &the_mutex->Mutex, - CORE_MUTEX_TQ_PRIORITY_INHERIT_OPERATIONS, - _Thread_Executing, - true, - _CORE_recursive_mutex_Seize_nested, - &queue_context - ); + _Mutex_recursive_Acquire( &the_mutex->Mutex ); - if ( the_mutex->Mutex.nest_level == 0 ) { + if ( the_mutex->Mutex._nest_level == 0 ) { the_mutex->previous_thread_life_state = previous_thread_life_state; } } |