Waiting for task
Posted by mike on February 9, 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.
RE: Waiting for task
Posted by Richard
on 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.
Copyright (C) 2004-2010 Richard Barry. Copyright (C) 2010-2016 Real Time Engineers Ltd.
Any and all data, files, source code, html content and documentation included in the FreeRTOSTM distribution or available on this site are the exclusive property of Real Time Engineers Ltd..
See the files license.txt (included in the distribution) and this copyright notice for more information. FreeRTOSTM and FreeRTOS.orgTM are trade marks of Real Time Engineers Ltd.