mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-10-13 16:27:43 -04:00
feat(freertos-smp): Update queueUNLOCK() to receive yield status
This commit is contained in:
parent
49b89b2f25
commit
1585b157d5
1 changed files with 13 additions and 12 deletions
5
queue.c
5
queue.c
|
@ -348,9 +348,10 @@ static void prvInitialiseNewQueue( const UBaseType_t uxQueueLength,
|
||||||
} while( 0 )
|
} while( 0 )
|
||||||
#define queueUNLOCK( pxQueue, xYieldAPI ) \
|
#define queueUNLOCK( pxQueue, xYieldAPI ) \
|
||||||
do { \
|
do { \
|
||||||
|
BaseType_t xAlreadyYielded; \
|
||||||
prvUnlockQueue( ( pxQueue ) ); \
|
prvUnlockQueue( ( pxQueue ) ); \
|
||||||
taskDATA_GROUP_UNLOCK( &( ( pxQueue )->xTaskSpinlock ) ); \
|
xAlreadyYielded = taskDATA_GROUP_UNLOCK( &( ( pxQueue )->xTaskSpinlock ) ); \
|
||||||
if( ( xYieldAPI ) == pdTRUE ) \
|
if( ( xAlreadyYielded == pdFALSE ) && ( ( xYieldAPI ) == pdTRUE ) ) \
|
||||||
{ \
|
{ \
|
||||||
taskYIELD_WITHIN_API(); \
|
taskYIELD_WITHIN_API(); \
|
||||||
} \
|
} \
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue