156 void *__restrict chunk_join,
157 void *__restrict chunk);
232 memset(settings, 0,
sizeof(*settings));
233 settings->use_threading =
true;
235 settings->min_iter_per_thread = 0;
240 memset(settings, 0,
sizeof(*settings));
241 settings->use_threading =
true;
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)
struct TaskNode * BLI_task_graph_node_create(struct TaskGraph *task_graph, TaskGraphNodeRunFunction run, void *user_data, TaskGraphNodeFreeFunction free_func)
TaskPool * BLI_task_pool_create_suspended(void *userdata, eTaskPriority priority)
void(* TaskGraphNodeFreeFunction)(void *task_data)
void * BLI_task_pool_user_data(TaskPool *pool)
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)
bool BLI_task_pool_current_canceled(TaskPool *pool)
TaskPool * BLI_task_pool_create_no_threads(void *userdata)
void BLI_task_pool_work_and_wait(TaskPool *pool)
struct TaskParallelTLS TaskParallelTLS
void BLI_task_pool_cancel(TaskPool *pool)
void BLI_task_scheduler_exit(void)
ThreadMutex * BLI_task_pool_user_mutex(TaskPool *pool)
bool BLI_task_graph_node_push_work(struct TaskNode *task_node)
void(* TaskParallelInitFunc)(const void *__restrict userdata, void *__restrict chunk)
TaskPool * BLI_task_pool_create_background(void *userdata, eTaskPriority priority)
TaskPool * BLI_task_pool_create_background_serial(void *userdata, eTaskPriority priority)
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)
void BLI_task_graph_free(struct TaskGraph *task_graph)
struct TaskGraph * BLI_task_graph_create(void)
int BLI_task_parallel_thread_id(const TaskParallelTLS *tls)
BLI_INLINE void BLI_parallel_range_settings_defaults(TaskParallelSettings *settings)
void BLI_task_parallel_mempool(struct BLI_mempool *mempool, void *userdata, TaskParallelMempoolFunc func, const TaskParallelSettings *settings)
BLI_INLINE void BLI_parallel_mempool_settings_defaults(TaskParallelSettings *settings)
void(* TaskGraphNodeRunFunction)(void *__restrict task_data)
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_mutex_t ThreadMutex
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