diff options
author | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-09-23 10:09:37 +0200 |
---|---|---|
committer | Sebastian Huber <sebastian.huber@embedded-brains.de> | 2020-09-28 06:19:52 +0200 |
commit | 5bc7c3724fbb06d934401400ac5922bcae2c6e95 (patch) | |
tree | 7857429e00f8e495ed5ae3317c62e1a15458f374 /cpukit/rtems | |
parent | 34dd90a560454842595845b95b7aed8b871d5da9 (diff) |
score: Improve _CORE_message_queue_Initialize()
Return a status code and differentiate between error conditions.
Update #4007.
Diffstat (limited to 'cpukit/rtems')
-rw-r--r-- | cpukit/rtems/src/msgqcreate.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/cpukit/rtems/src/msgqcreate.c b/cpukit/rtems/src/msgqcreate.c index 3741347cc9..79b198199e 100644 --- a/cpukit/rtems/src/msgqcreate.c +++ b/cpukit/rtems/src/msgqcreate.c @@ -41,6 +41,7 @@ rtems_status_code rtems_message_queue_create( { Message_queue_Control *the_message_queue; CORE_message_queue_Disciplines discipline; + Status_Control status; #if defined(RTEMS_MULTIPROCESSING) bool is_global; #endif @@ -107,12 +108,14 @@ rtems_status_code rtems_message_queue_create( else discipline = CORE_MESSAGE_QUEUE_DISCIPLINES_FIFO; - if ( ! _CORE_message_queue_Initialize( - &the_message_queue->message_queue, - discipline, - count, - max_message_size - ) ) { + status = _CORE_message_queue_Initialize( + &the_message_queue->message_queue, + discipline, + count, + max_message_size + ); + + if ( status != STATUS_SUCCESSFUL ) { #if defined(RTEMS_MULTIPROCESSING) if ( is_global ) _Objects_MP_Close( @@ -121,7 +124,7 @@ rtems_status_code rtems_message_queue_create( _Message_queue_Free( the_message_queue ); _Objects_Allocator_unlock(); - return RTEMS_UNSATISFIED; + return STATUS_GET_CLASSIC( status ); } _Objects_Open( |