My task terminate- and suspend function must comply to the following definitions:
All resources occupied by the terminated task (including processor) are withdrawn from it. Synchronization variables blocked by the task, however, are not released automatically.
The processor allocated to it is withdrawn from it, but not all the other resources occupied by it. A suspended task can only be continued by executing a continue (vTaskResume) statement.
In my opinion I could realize "terminate" with vTaskDelete() and "suspend" with vTaskSuspend(). Any other opinions?
Further reading: 9.2.3/9.2.4 http://www.real-time.de/misc/PEARL90-LanguageReport-V2.2-GI-1998-eng.pdf
In FreeRTOS, when a task is deleted the memory allocated to the task by the RTOS is automatically freed - but any resources allocated to the task by the application must be freed by the application. When a task is suspended it will not run until another task unsuspends it, but no resource allocation is modified at all.
Regards.