diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-27 08:02:03 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2016-05-30 16:16:23 +0200 |
commit | 5a598ac99b0de720a04afc5e2ac6764117589b90 (patch) | |
tree | 811d57df33c0f4fcc1cce61095cb5c0a33eadd7c /cpukit/rtems/src/semrelease.c | |
parent | posix: Delete POSIX_Mutex_Protocol::process_shared (diff) | |
download | rtems-5a598ac99b0de720a04afc5e2ac6764117589b90.tar.bz2 |
score: Add CORE mutex variants
Add CORE_recursive_mutex_Control and CORE_ceiling_mutex_Control to avoid
the run-time evaluation of attributes to figure out how a particular
mutex methods should behave. Start with the no protocol variants. This
eliminates the CORE_MUTEX_DISCIPLINES_FIFO and
CORE_MUTEX_DISCIPLINES_PRIORITY disciplines.
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, |