152 void *__restrict chunk_join,
153 void *__restrict chunk);
295 memset(settings, 0,
sizeof(*settings));
303 memset(settings, 0,
sizeof(*settings));
void BLI_task_scheduler_init(void)
int BLI_task_scheduler_num_threads(void)
void(* TaskParallelReduceFunc)(const void *__restrict userdata, void *__restrict chunk_join, void *__restrict chunk)
void(* TaskGraphNodeFreeFunction)(void *task_data)
void BLI_task_graph_edge_create(struct TaskNode *from_node, struct TaskNode *to_node)
struct MempoolIterData MempoolIterData
void BLI_task_isolate(void(*func)(void *userdata), void *userdata)
void * BLI_task_pool_user_data(TaskPool *pool)
struct TaskGraph * BLI_task_graph_create(void)
bool BLI_task_pool_current_canceled(TaskPool *pool)
void BLI_task_pool_work_and_wait(TaskPool *pool)
struct TaskParallelTLS TaskParallelTLS
void BLI_task_pool_cancel(TaskPool *pool)
void(* TaskParallelIteratorIterFunc)(void *__restrict userdata, const TaskParallelTLS *__restrict tls, void **r_next_item, int *r_next_index, bool *r_do_abort)
void BLI_task_scheduler_exit(void)
bool BLI_task_graph_node_push_work(struct TaskNode *task_node)
TaskPool * BLI_task_pool_create_background_serial(void *userdata, eTaskPriority priority)
void(* TaskParallelInitFunc)(const void *__restrict userdata, void *__restrict chunk)
ThreadMutex * BLI_task_pool_user_mutex(TaskPool *pool)
void BLI_task_parallel_range(int start, int stop, void *userdata, TaskParallelRangeFunc func, const TaskParallelSettings *settings)
void(* TaskParallelRangeFunc)(void *__restrict userdata, int iter, const TaskParallelTLS *__restrict tls)
TaskPool * BLI_task_pool_create(void *userdata, eTaskPriority priority)
struct TaskNode * BLI_task_graph_node_create(struct TaskGraph *task_graph, TaskGraphNodeRunFunction run, void *user_data, TaskGraphNodeFreeFunction free_func)
void BLI_task_graph_free(struct TaskGraph *task_graph)
int BLI_task_parallel_thread_id(const TaskParallelTLS *tls)
TaskPool * BLI_task_pool_create_background(void *userdata, eTaskPriority priority)
BLI_INLINE void BLI_parallel_range_settings_defaults(TaskParallelSettings *settings)
void BLI_task_parallel_iterator(void *userdata, TaskParallelIteratorIterFunc iter_func, void *init_item, int init_index, int items_num, TaskParallelIteratorFunc func, const TaskParallelSettings *settings)
void BLI_task_parallel_mempool(struct BLI_mempool *mempool, void *userdata, TaskParallelMempoolFunc func, const TaskParallelSettings *settings)
TaskPool * BLI_task_pool_create_suspended(void *userdata, eTaskPriority priority)
void(* TaskParallelIteratorFunc)(void *__restrict userdata, void *item, int index, const TaskParallelTLS *__restrict tls)
struct TaskParallelIteratorStateShared TaskParallelIteratorStateShared
BLI_INLINE void BLI_parallel_mempool_settings_defaults(TaskParallelSettings *settings)
void(* TaskGraphNodeRunFunction)(void *__restrict task_data)
void BLI_task_parallel_listbase(struct ListBase *listbase, void *userdata, TaskParallelIteratorFunc func, const TaskParallelSettings *settings)
TaskPool * BLI_task_pool_create_no_threads(void *userdata)
void(* TaskFreeFunction)(TaskPool *__restrict pool, void *taskdata)
void(* TaskParallelMempoolFunc)(void *userdata, MempoolIterData *iter, const TaskParallelTLS *__restrict tls)
void BLI_task_graph_work_and_wait(struct TaskGraph *task_graph)
void BLI_task_pool_free(TaskPool *pool)
void(* TaskParallelFreeFunc)(const void *__restrict userdata, void *__restrict chunk)
struct TaskParallelSettings TaskParallelSettings
void BLI_task_pool_push(TaskPool *pool, TaskRunFunction run, void *taskdata, bool free_taskdata, TaskFreeFunction freedata)
pthread_spinlock_t SpinLock
pthread_mutex_t ThreadMutex
SyclQueue void void size_t num_bytes void
static PyObject * free_func(PyObject *, PyObject *value)
TaskParallelReduceFunc func_reduce
TaskParallelFreeFunc func_free
TaskParallelInitFunc func_init
size_t userdata_chunk_size
function< void(void)> TaskRunFunction