初级会员
- 积分
- 125
- 金钱
- 125
- 注册时间
- 2013-9-28
- 在线时间
- 17 小时
|
5金钱
内核版本: FreeRTOS Kernel V10.4.3
BaseType_t xQueueGenericSend(...)
{
for (; ; )
{
if ((pxQueue->uxMessagesWaiting < pxQueue->uxLength) || (xCopyPosition == queueOVERWRITE))
{
...
}
else
{
if (xTicksToWait == (TickType_t)0)
{
...
}
else if (xEntryTimeSet == pdFALSE)
{
...
}
else
{
// (1)
mtCOVERAGE_TEST_MARKER();
}
}
if (xTaskCheckForTimeOut(&xTimeOut, &xTicksToWait) == pdFALSE)
{
if (prvIsQueueFull(pxQueue) != pdFALSE)
{
traceBLOCKING_ON_QUEUE_SEND(pxQueue);
// (2)
vTaskPlaceOnEventList(&(pxQueue->xTasksWaitingToSend), xTicksToWait);
}
}
}
}
如果队列满,且xTicksToWait不为0的情况下,程序一直进 (1)(2), 岂不是会一直往xTasksWaitingToSend队列中添加当前任务?
|
|