Function esp_idf_hal::sys::vTaskSuspend

source ·
pub unsafe extern "C" fn vTaskSuspend(
    xTaskToSuspend: *mut tskTaskControlBlock,
)
Expand description

@cond !DOC_EXCLUDE_HEADER_SECTION task. h @code{c} void vTaskSuspend( TaskHandle_t xTaskToSuspend ); @endcode @endcond

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 vTaskSuspend are not accumulative - i.e. calling vTaskSuspend () twice on the same task still only requires one call to vTaskResume () to ready the suspended task.

@param xTaskToSuspend Handle to the task being suspended. Passing a NULL handle will cause the calling task to be suspended.

Example usage: @code{c} void vAFunction( void ) { TaskHandle_t xHandle;

// Create a task, storing the handle. xTaskCreate( vTaskCode, “NAME”, STACK_SIZE, NULL, tskIDLE_PRIORITY, &xHandle );

// …

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

// …

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

//…

// Suspend ourselves. vTaskSuspend( NULL );

// We cannot get here unless another task calls vTaskResume // with our handle as the parameter. } @endcode @cond !DOC_SINGLE_GROUP \defgroup vTaskSuspend vTaskSuspend @endcond \ingroup TaskCtrl