diff options
Diffstat (limited to 'c/src/exec/score/src/coremutex.c')
-rw-r--r-- | c/src/exec/score/src/coremutex.c | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/c/src/exec/score/src/coremutex.c b/c/src/exec/score/src/coremutex.c index 08d1630b7f..a0c3fd0264 100644 --- a/c/src/exec/score/src/coremutex.c +++ b/c/src/exec/score/src/coremutex.c @@ -122,12 +122,6 @@ void _CORE_mutex_Seize( return; } - if ( !wait ) { - _ISR_Enable( level ); - executing->Wait.return_code = CORE_MUTEX_STATUS_UNSATISFIED_NOWAIT; - return; - } - if ( _Objects_Are_ids_equal( _Thread_Executing->Object.id, the_mutex->holder_id ) ) { if ( _CORE_mutex_Is_nesting_allowed( &the_mutex->Attributes ) ) @@ -139,6 +133,12 @@ void _CORE_mutex_Seize( return; } + if ( !wait ) { + _ISR_Enable( level ); + executing->Wait.return_code = CORE_MUTEX_STATUS_UNSATISFIED_NOWAIT; + return; + } + _Thread_queue_Enter_critical_section( &the_mutex->Wait_queue ); executing->Wait.queue = &the_mutex->Wait_queue; executing->Wait.id = id; |