From 8110c056298f7d38dbf7e65aac5fb7e498a1ffc4 Mon Sep 17 00:00:00 2001 From: John Boiles Date: Fri, 24 Jan 2025 16:32:57 -0800 Subject: [PATCH] PR feedback to eliminate early returns --- portable/ThirdParty/GCC/Posix/port.c | 55 +++++++++++++--------------- 1 file changed, 26 insertions(+), 29 deletions(-) diff --git a/portable/ThirdParty/GCC/Posix/port.c b/portable/ThirdParty/GCC/Posix/port.c index 0ebf86fb1..a81227069 100644 --- a/portable/ThirdParty/GCC/Posix/port.c +++ b/portable/ThirdParty/GCC/Posix/port.c @@ -368,21 +368,19 @@ void vPortYield( void ) void vPortDisableInterrupts( void ) { - if( prvIsFreeRTOSThread( pthread_self() ) == pdFALSE ) + if( prvIsFreeRTOSThread( pthread_self() ) == pdTRUE ) { - return; + pthread_sigmask(SIG_BLOCK, &xAllSignals, NULL); } - pthread_sigmask(SIG_BLOCK, &xAllSignals, NULL); } /*-----------------------------------------------------------*/ void vPortEnableInterrupts( void ) { - if( prvIsFreeRTOSThread( pthread_self() ) == pdFALSE ) + if( prvIsFreeRTOSThread( pthread_self() ) == pdTRUE ) { - return; + pthread_sigmask(SIG_UNBLOCK, &xAllSignals, NULL); } - pthread_sigmask(SIG_UNBLOCK, &xAllSignals, NULL); } /*-----------------------------------------------------------*/ @@ -452,32 +450,31 @@ void prvSetupTimerInterrupt( void ) static void vPortSystemTickHandler( int sig ) { - if( prvIsFreeRTOSThread( pthread_self() ) == pdFALSE ) + if( prvIsFreeRTOSThread( pthread_self() ) == pdTRUE ) { + Thread_t * pxThreadToSuspend; + Thread_t * pxThreadToResume; + + ( void ) sig; + + uxCriticalNesting++; /* Signals are blocked in this signal handler. */ + + pxThreadToSuspend = prvGetThreadFromTask( xTaskGetCurrentTaskHandle() ); + + if( xTaskIncrementTick() != pdFALSE ) + { + /* Select Next Task. */ + vTaskSwitchContext(); + + pxThreadToResume = prvGetThreadFromTask( xTaskGetCurrentTaskHandle() ); + + prvSwitchThread( pxThreadToResume, pxThreadToSuspend ); + } + + uxCriticalNesting--; + } else { fprintf( stderr, "vPortSystemTickHandler called from non-FreeRTOS thread\n" ); - return; } - - Thread_t * pxThreadToSuspend; - Thread_t * pxThreadToResume; - - ( void ) sig; - - uxCriticalNesting++; /* Signals are blocked in this signal handler. */ - - pxThreadToSuspend = prvGetThreadFromTask( xTaskGetCurrentTaskHandle() ); - - if( xTaskIncrementTick() != pdFALSE ) - { - /* Select Next Task. */ - vTaskSwitchContext(); - - pxThreadToResume = prvGetThreadFromTask( xTaskGetCurrentTaskHandle() ); - - prvSwitchThread( pxThreadToResume, pxThreadToSuspend ); - } - - uxCriticalNesting--; } /*-----------------------------------------------------------*/