summaryrefslogtreecommitdiffstats
path: root/cpukit/posix/src
diff options
context:
space:
mode:
authorJoel Sherrill <joel@rtems.org>2017-04-27 18:52:01 -0500
committerJoel Sherrill <joel@rtems.org>2017-04-27 18:52:01 -0500
commit12f9c5b766a3c3c31c6de68ccd28e41993384a19 (patch)
treeb59a491a5d79b5728eb6f489548cfc78ae3da9c6 /cpukit/posix/src
parentposix/src/mutexinit.c: Reorder to make priority a scoped variable (diff)
downloadrtems-12f9c5b766a3c3c31c6de68ccd28e41993384a19.tar.bz2
posix/src/mutexinit.c: Reorder to make priority a scoped variable
Diffstat (limited to 'cpukit/posix/src')
-rw-r--r--cpukit/posix/src/mutexinit.c52
1 files changed, 24 insertions, 28 deletions
diff --git a/cpukit/posix/src/mutexinit.c b/cpukit/posix/src/mutexinit.c
index cdbba11f5e..08acb539b5 100644
--- a/cpukit/posix/src/mutexinit.c
+++ b/cpukit/posix/src/mutexinit.c
@@ -115,35 +115,31 @@ int pthread_mutex_init(
the_mutex->protocol = protocol;
the_mutex->is_recursive = ( the_attr->type == PTHREAD_MUTEX_RECURSIVE );
- switch ( protocol ) {
- case POSIX_MUTEX_PRIORITY_CEILING: {
- int prio_ceiling;
- bool valid;
- Priority_Control priority;
-
- scheduler = _Thread_Scheduler_get_home( _Thread_Get_executing() );
- prio_ceiling = the_attr->prio_ceiling;
-
- if ( prio_ceiling == INT_MAX ) {
- prio_ceiling = _POSIX_Priority_Get_maximum( scheduler );
- }
-
- priority = _POSIX_Priority_To_core( scheduler, prio_ceiling, &valid );
- if ( !valid ) {
- _POSIX_Mutex_Free(the_mutex);
- _Objects_Allocator_unlock();
- return EINVAL;
- }
- _CORE_ceiling_mutex_Initialize( &the_mutex->Mutex, scheduler, priority );
- break;
+ if ( protocol == POSIX_MUTEX_PRIORITY_CEILING ) {
+ int prio_ceiling;
+ bool valid;
+ Priority_Control priority;
+
+ scheduler = _Thread_Scheduler_get_home( _Thread_Get_executing() );
+ prio_ceiling = the_attr->prio_ceiling;
+
+ if ( prio_ceiling == INT_MAX ) {
+ prio_ceiling = _POSIX_Priority_Get_maximum( scheduler );
}
- default:
- _Assert(
- the_mutex->protocol == POSIX_MUTEX_NO_PROTOCOL
- || the_mutex->protocol == POSIX_MUTEX_PRIORITY_INHERIT
- );
- _CORE_recursive_mutex_Initialize( &the_mutex->Mutex.Recursive );
- break;
+
+ priority = _POSIX_Priority_To_core( scheduler, prio_ceiling, &valid );
+ if ( !valid ) {
+ _POSIX_Mutex_Free(the_mutex);
+ _Objects_Allocator_unlock();
+ return EINVAL;
+ }
+ _CORE_ceiling_mutex_Initialize( &the_mutex->Mutex, scheduler, priority );
+ } else {
+ _Assert(
+ the_mutex->protocol == POSIX_MUTEX_NO_PROTOCOL
+ || the_mutex->protocol == POSIX_MUTEX_PRIORITY_INHERIT
+ );
+ _CORE_recursive_mutex_Initialize( &the_mutex->Mutex.Recursive );
}
_Objects_Open_u32( &_POSIX_Mutex_Information, &the_mutex->Object, 0 );