In case function was called with xTicksToWait >0 and situation happened to be next:
— queue is full
— task has not yet timed out we (xTaskCheckForTimeOut returns false)
as consequence we call vTaskPlaceOnEventList( &( pxQueue->xTasksWaitingToSend ), xTicksToWait ); in each iteration of do-while loop.
Question: Will not waiting list build up in size (memory leak) ?
I’m not sure I completely understand your question - but once a task has been placed on the event list it is in the Blocked state and will not run again until it has been unblocked. Therefore it cannot be placed on the event list again until it has already been unblocked and removed from the event list. It will therefore only be on the event list at most once at any particular time.