diff options
Diffstat (limited to 'cpukit/rtems/src/semrelease.c')
-rw-r--r-- | cpukit/rtems/src/semrelease.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/cpukit/rtems/src/semrelease.c b/cpukit/rtems/src/semrelease.c index 3e13334e87..7cd92cfe0d 100644 --- a/cpukit/rtems/src/semrelease.c +++ b/cpukit/rtems/src/semrelease.c @@ -57,10 +57,18 @@ rtems_status_code rtems_semaphore_release( rtems_id id ) #endif case SEMAPHORE_VARIANT_MUTEX: status = _CORE_mutex_Surrender( - &the_semaphore->Core_control.mutex, + &the_semaphore->Core_control.Mutex.Recursive.Mutex, &queue_context ); break; + case SEMAPHORE_VARIANT_MUTEX_NO_PROTOCOL: + _CORE_recursive_mutex_Surrender_no_protocol_classic( + &the_semaphore->Core_control.Mutex.Recursive, + _Semaphore_Get_operations( the_semaphore ), + &queue_context + ); + status = STATUS_SUCCESSFUL; + break; case SEMAPHORE_VARIANT_SIMPLE_BINARY: status = _CORE_semaphore_Surrender( &the_semaphore->Core_control.semaphore, |