Halide 22.0.0 Halide compiler and libraries

Public Attributes | List of all members
halide_parallel_task_t Struct Reference

A parallel task to be passed to halide_do_parallel_tasks. More...

`#include <HalideRuntime.h>`

## Public Attributes
halide_loop_task_t | fn
uint8_t * | closure
const char * | name
struct halide_semaphore_acquire_t * | semaphores
int | num_semaphores
int | min
int | extent
int | min_threads
bool | serial

## Detailed Description

A parallel task to be passed to halide_do_parallel_tasks.

This task may recursively call halide_do_parallel_tasks, and there may be complex dependencies between seemingly unrelated tasks expressed using semaphores. If you are using a custom task system, care must be taken to avoid potential deadlock. This can be done by carefully respecting the static metadata at the end of the task struct.

Definition at line 272 of file HalideRuntime.h.

## Member Data Documentation

## ◆ fn

halide_loop_task_t halide_parallel_task_t::fn

Definition at line 275 of file HalideRuntime.h.

Referenced by halide_default_do_par_for(), and Halide::Runtime::Internal::worker_thread_already_locked().

## ◆ closure

uint8_t* halide_parallel_task_t::closure

Definition at line 278 of file HalideRuntime.h.

Referenced by halide_default_do_par_for(), and Halide::Runtime::Internal::worker_thread_already_locked().

## ◆ name

const char* halide_parallel_task_t::name

Definition at line 281 of file HalideRuntime.h.

Referenced by Halide::Runtime::Internal::enqueue_work_already_locked(), halide_default_do_par_for(), and Halide::Runtime::Internal::worker_thread_already_locked().

## ◆ semaphores

struct halide_semaphore_acquire_t* halide_parallel_task_t::semaphores

Definition at line 285 of file HalideRuntime.h.

Referenced by halide_default_do_par_for(), and Halide::Runtime::Internal::work::make_runnable().

## ◆ num_semaphores

int halide_parallel_task_t::num_semaphores

Definition at line 286 of file HalideRuntime.h.

Referenced by halide_default_do_par_for(), and Halide::Runtime::Internal::work::make_runnable().

## ◆ min

int halide_parallel_task_t::min

Definition at line 290 of file HalideRuntime.h.

Referenced by halide_default_do_par_for(), and Halide::Runtime::Internal::worker_thread_already_locked().

## ◆ extent

int halide_parallel_task_t::extent

Definition at line 290 of file HalideRuntime.h.

Referenced by Halide::Runtime::Internal::enqueue_work_already_locked(), halide_default_do_par_for(), halide_default_do_parallel_tasks(), Halide::Runtime::Internal::work::running(), and Halide::Runtime::Internal::worker_thread_already_locked().

## ◆ min_threads

int halide_parallel_task_t::min_threads

Definition at line 309 of file HalideRuntime.h.

Referenced by Halide::Runtime::Internal::enqueue_work_already_locked(), halide_default_do_par_for(), and Halide::Runtime::Internal::worker_thread_already_locked().

## ◆ serial

bool halide_parallel_task_t::serial

Definition at line 314 of file HalideRuntime.h.

Referenced by halide_default_do_par_for(), and Halide::Runtime::Internal::worker_thread_already_locked().

The documentation for this struct was generated from the following file:

- src/runtime/HalideRuntime.h