Kernel code:

+ Added mtCOVERAGE_TEST_DELAY() macro to facilitate getting better code coverage during testing.
+ Update prvNotifyQueueSetContainer() so it does not call xTaskRemoveFromEventList() if it is called from an interrupt, and the queue is locked.

Demo apps:
Added QueueSetPolling.c/h demo/test functions.
This commit is contained in:
Richard Barry
2015-03-04 17:45:18 +00:00
parent 7d169cef52
commit 96e72413f7
12 changed files with 362 additions and 20 deletions

View File

@ -2565,12 +2565,19 @@ BaseType_t xReturn;
/* The data copied is the handle of the queue that contains data. */
xReturn = prvCopyDataToQueue( pxQueueSetContainer, &pxQueue, xCopyPosition );
if( listLIST_IS_EMPTY( &( pxQueueSetContainer->xTasksWaitingToReceive ) ) == pdFALSE )
if( pxQueueSetContainer->xTxLock == queueUNLOCKED )
{
if( xTaskRemoveFromEventList( &( pxQueueSetContainer->xTasksWaitingToReceive ) ) != pdFALSE )
if( listLIST_IS_EMPTY( &( pxQueueSetContainer->xTasksWaitingToReceive ) ) == pdFALSE )
{
/* The task waiting has a higher priority */
xReturn = pdTRUE;
if( xTaskRemoveFromEventList( &( pxQueueSetContainer->xTasksWaitingToReceive ) ) != pdFALSE )
{
/* The task waiting has a higher priority. */
xReturn = pdTRUE;
}
else
{
mtCOVERAGE_TEST_MARKER();
}
}
else
{
@ -2579,7 +2586,7 @@ BaseType_t xReturn;
}
else
{
mtCOVERAGE_TEST_MARKER();
( pxQueueSetContainer->xTxLock )++;
}
}
else