Skip to content

Commit 953c1ee

Browse files
aggargDazza0
andauthored
Fix eTaskGetState for pending ready tasks (#679)
This commit fixes eTaskGetState so that eReady is returned for pending ready tasks. Co-authored-by: Darian Leung <[email protected]>
1 parent 97434a4 commit 953c1ee

File tree

1 file changed

+10
-1
lines changed

1 file changed

+10
-1
lines changed

tasks.c

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1351,6 +1351,7 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
13511351
{
13521352
eTaskState eReturn;
13531353
List_t const * pxStateList;
1354+
List_t const * pxEventList;
13541355
List_t const * pxDelayedList;
13551356
List_t const * pxOverflowedDelayedList;
13561357
const TCB_t * const pxTCB = xTask;
@@ -1367,12 +1368,20 @@ static void prvAddNewTaskToReadyList( TCB_t * pxNewTCB )
13671368
taskENTER_CRITICAL();
13681369
{
13691370
pxStateList = listLIST_ITEM_CONTAINER( &( pxTCB->xStateListItem ) );
1371+
pxEventList = listLIST_ITEM_CONTAINER( &( pxTCB->xEventListItem ) );
13701372
pxDelayedList = pxDelayedTaskList;
13711373
pxOverflowedDelayedList = pxOverflowDelayedTaskList;
13721374
}
13731375
taskEXIT_CRITICAL();
13741376

1375-
if( ( pxStateList == pxDelayedList ) || ( pxStateList == pxOverflowedDelayedList ) )
1377+
if( pxEventList == &xPendingReadyList )
1378+
{
1379+
/* The task has been placed on the pending ready list, so its
1380+
* state is eReady regardless of what list the task's state list
1381+
* item is currently placed on. */
1382+
eReturn = eReady;
1383+
}
1384+
else if( ( pxStateList == pxDelayedList ) || ( pxStateList == pxOverflowedDelayedList ) )
13761385
{
13771386
/* The task being queried is referenced from one of the Blocked
13781387
* lists. */

0 commit comments

Comments
 (0)