Waiting for task

anonymous wrote on Thursday, February 09, 2012:

I send to task some signal after receiving which another task delete itself. So how can i know that another task exited? In other words i need something like WaitForSingleObject(thread) in windows. Thanks.

rtel wrote on Saturday, February 11, 2012:

I’m not sure I exactly understand your question, and I’m not a Windows programmer so don’t know (without looking it up anyway) what WaitForWingleObject( thread ) does.  However, I think you are asking how you place one task into the Blocked state until another task has deleted itself….if that is correct then:

The easiest way of doing this would be to have the task release a semaphore before calling vTaskDelete(), and have the task that was waiting block on the semaphore.  You could alternatively define the traceTASK_DELETE() to do a similar thing, but that would be more complex a solution.

I would ask though, why you have a task deleting itself anyway?  That should be avoided if possible as you could get into memory fragmentation issues (depending on your selected memory allocation scheme).  If the task repeatedly gets created and deleted, then consider making the task persistent and instead re-using the same task over and over.