Memory leak ?

pajk wrote on Saturday, January 17, 2009:


I am new in the filed of FreeRtos. I have a simple question regarding code.

Inside function:

xQueueGenericSend( xQueueHandle pxQueue, const void * const pvItemToQueue, portTickType xTicksToWait, portBASE_TYPE xCopyPosition )

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) ?


rtel wrote on Saturday, January 17, 2009:

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.


pajk wrote on Saturday, January 31, 2009:


Richard , it is like you wrote. After weekend inspecting the code I must agree with you.

This topic needs no further debate, so it should be closed.

Thanks again, Richard. Your advice led me the right way.

Izi Pajk