This commit is contained in:
Aniruddha Kanhere 2026-08-26 19:24:05 -07:00 • committed by GitHub
commit d6afc8ec8e
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

31
queue.c
View file

@ -1635,23 +1635,15 @@ BaseType_t xQueueReceive( QueueHandle_t xQueue,
} }
else else
{ {
/* Timed out. If there is no data in the queue exit, otherwise loop /* The timeout has expired. */
* back and attempt to read the data. */
prvUnlockQueue( pxQueue ); prvUnlockQueue( pxQueue );
( void ) xTaskResumeAll(); ( void ) xTaskResumeAll();
if( prvIsQueueEmpty( pxQueue ) != pdFALSE )
{
traceQUEUE_RECEIVE_FAILED( pxQueue ); traceQUEUE_RECEIVE_FAILED( pxQueue );
traceRETURN_xQueueReceive( errQUEUE_EMPTY ); traceRETURN_xQueueReceive( errQUEUE_EMPTY );
return errQUEUE_EMPTY; return errQUEUE_EMPTY;
} }
else
{
mtCOVERAGE_TEST_MARKER();
}
}
} }
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -1829,12 +1821,6 @@ BaseType_t xQueueSemaphoreTake( QueueHandle_t xQueue,
prvUnlockQueue( pxQueue ); prvUnlockQueue( pxQueue );
( void ) xTaskResumeAll(); ( void ) xTaskResumeAll();
/* If the semaphore count is 0 exit now as the timeout has
* expired. Otherwise return to attempt to take the semaphore that is
* known to be available. As semaphores are implemented by queues the
* queue being empty is equivalent to the semaphore count being 0. */
if( prvIsQueueEmpty( pxQueue ) != pdFALSE )
{
#if ( configUSE_MUTEXES == 1 ) #if ( configUSE_MUTEXES == 1 )
{ {
/* xInheritanceOccurred could only have be set if /* xInheritanceOccurred could only have be set if
@ -1872,11 +1858,6 @@ BaseType_t xQueueSemaphoreTake( QueueHandle_t xQueue,
return errQUEUE_EMPTY; return errQUEUE_EMPTY;
} }
else
{
mtCOVERAGE_TEST_MARKER();
}
}
} }
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/
@ -2015,23 +1996,15 @@ BaseType_t xQueuePeek( QueueHandle_t xQueue,
} }
else else
{ {
/* The timeout has expired. If there is still no data in the queue /* The timeout has expired. */
* exit, otherwise go back and try to read the data again. */
prvUnlockQueue( pxQueue ); prvUnlockQueue( pxQueue );
( void ) xTaskResumeAll(); ( void ) xTaskResumeAll();
if( prvIsQueueEmpty( pxQueue ) != pdFALSE )
{
traceQUEUE_PEEK_FAILED( pxQueue ); traceQUEUE_PEEK_FAILED( pxQueue );
traceRETURN_xQueuePeek( errQUEUE_EMPTY ); traceRETURN_xQueuePeek( errQUEUE_EMPTY );
return errQUEUE_EMPTY; return errQUEUE_EMPTY;
} }
else
{
mtCOVERAGE_TEST_MARKER();
}
}
} }
} }
/*-----------------------------------------------------------*/ /*-----------------------------------------------------------*/