Best way to block a task?

HI,,
I need to run a task after acertain event occurs (e.g. button push)..
so what is more efficient with the minimum cpu overheads and more reliable, to use **vTaskSuspend** from the first call to of the task, or a semaphore with max delay. ?
thanks

Best way to block a task?

Use a binary or counting semaphore with max delay. If you set INCLUDE_vTaskSuspend to 1 in FreeRTOSConfig.h then max delay will be an indefinite delay. Do not use vTaskSuspend() for event processing. It does not latch events so it is easy to miss them.