From 5bc7c3724fbb06d934401400ac5922bcae2c6e95 Mon Sep 17 00:00:00 2001 From: Sebastian Huber Date: Wed, 23 Sep 2020 10:09:37 +0200 Subject: score: Improve _CORE_message_queue_Initialize() Return a status code and differentiate between error conditions. Update #4007. --- cpukit/rtems/src/msgqcreate.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) (limited to 'cpukit/rtems') 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( -- cgit v1.2.3