Includes related fix to preemption unit tests (delete a queue after deleting the task blocked on it.)
portPRE_TASK_DELETE_HOOK( pxTCB, &xYieldPending[xPortGetCoreID()] );
portYIELD_WITHIN_API();
}
+ else if ( portNUM_PROCESSORS > 1 && pxTCB == pxCurrentTCB[ !xPortGetCoreID() ] )
+ {
+ /* if task is running on the other CPU, force a yield on that CPU to take it off */
+ vPortYieldOtherCore( !xPortGetCoreID() );
+ }
else
{
/* Reset the next expected unblock time in case it referred to
printf("Yielding from lower priority task took %u cycles\n", delta);
TEST_ASSERT(delta < 10000);
- vQueueDelete(queue);
vTaskDelete(sender_task);
+ vQueueDelete(queue);
}
}