diff options
Diffstat (limited to 'cpukit/score')
-rw-r--r-- | cpukit/score/include/rtems/score/coremutex.h | 16 | ||||
-rw-r--r-- | cpukit/score/include/rtems/score/coremuteximpl.h | 5 |
2 files changed, 8 insertions, 13 deletions
diff --git a/cpukit/score/include/rtems/score/coremutex.h b/cpukit/score/include/rtems/score/coremutex.h index 2bde8b5ebd..26bb53920a 100644 --- a/cpukit/score/include/rtems/score/coremutex.h +++ b/cpukit/score/include/rtems/score/coremutex.h @@ -47,17 +47,13 @@ extern "C" { * The following defines the control block used to manage each mutex. */ typedef struct { - /** This field is the Waiting Queue used to manage the set of tasks - * which are blocked waiting to lock the mutex. - */ - Thread_queue_Control Wait_queue; - - /** This element points to the thread which is currently holding this mutex. - * The holder is the last thread to successfully lock the mutex and which - * has not unlocked it. If the thread is not locked, there is no holder. + /** + * @brief The thread queue of this mutex. + * + * The owner of the thread queue indicates the mutex owner. */ - Thread_Control *holder; -} CORE_mutex_Control; + Thread_queue_Control Wait_queue; +} CORE_mutex_Control; /** * @brief The recursive mutex control. diff --git a/cpukit/score/include/rtems/score/coremuteximpl.h b/cpukit/score/include/rtems/score/coremuteximpl.h index 69311e4101..decf770eed 100644 --- a/cpukit/score/include/rtems/score/coremuteximpl.h +++ b/cpukit/score/include/rtems/score/coremuteximpl.h @@ -40,7 +40,6 @@ RTEMS_INLINE_ROUTINE void _CORE_mutex_Initialize( ) { _Thread_queue_Initialize( &the_mutex->Wait_queue ); - the_mutex->holder = NULL; } RTEMS_INLINE_ROUTINE void _CORE_mutex_Destroy( CORE_mutex_Control *the_mutex ) @@ -74,7 +73,7 @@ RTEMS_INLINE_ROUTINE Thread_Control *_CORE_mutex_Get_owner( const CORE_mutex_Control *the_mutex ) { - return the_mutex->holder; + return the_mutex->Wait_queue.Queue.owner; } /** @@ -126,7 +125,7 @@ RTEMS_INLINE_ROUTINE void _CORE_mutex_Set_owner( Thread_Control *owner ) { - the_mutex->holder = owner; + the_mutex->Wait_queue.Queue.owner = owner; } RTEMS_INLINE_ROUTINE bool _CORE_mutex_Is_owner( |