ZestCode
 
Loading...
Searching...
No Matches
task_suspend

task. h

void task_suspend( task_t xTaskToSuspend );

INCLUDE_vTaskSuspend must be defined as 1 for this function to be available. See the configuration section for more information.

Suspend any task. When suspended a task will never get any microcontroller processing time, no matter what its priority.

Calls to task_suspend are not accumulative - i.e. calling task_suspend () twice on the same task still only requires one call to task_resume () to ready the suspended task.

Parameters
xTaskToSuspendHandle to the task being suspended. Passing a NULL handle will cause the calling task to be suspended.

Example usage:

void vAFunction( void )
{
task_t xHandle;

    // Create a task, storing the handle.
    task_create( vTaskCode, "NAME", STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );

    // ...

    // Use the handle to suspend the created task.
    task_suspend( xHandle );

    // ...

    // The created task will not run during this period, unless
    // another task calls task_resume( xHandle ).

    //...


    // Suspend ourselves.
    task_suspend( NULL );

    // We cannot get here unless another task calls task_resume
    // with our handle as the parameter.
}