|
Blender V4.3
|
#include <stdlib.h>#include "MEM_guardedalloc.h"#include "BLI_mempool.h"#include "BLI_mempool_private.h"#include "BLI_task.h"#include "BLI_threads.h"Go to the source code of this file.
Classes | |
| struct | ParallelMempoolState |
Macros | |
Macros | |
| #define | MALLOCA(_size) ((_size) <= 8192) ? alloca(_size) : MEM_mallocN((_size), __func__) |
| #define | MALLOCA_FREE(_mem, _size) |
MemPool Iteration | |
| typedef struct ParallelMempoolState | ParallelMempoolState |
| static void | parallel_mempool_func (TaskPool *__restrict pool, void *taskdata) |
| void | BLI_task_parallel_mempool (BLI_mempool *mempool, void *userdata, TaskParallelMempoolFunc func, const TaskParallelSettings *settings) |
Parallel tasks over all elements in a container.
Definition in file task_iterator.c.
| #define MALLOCA | ( | _size | ) | ((_size) <= 8192) ? alloca(_size) : MEM_mallocN((_size), __func__) |
Definition at line 25 of file task_iterator.c.
Referenced by BLI_task_parallel_mempool().
| #define MALLOCA_FREE | ( | _mem, | |
| _size ) |
Definition at line 26 of file task_iterator.c.
Referenced by BLI_task_parallel_mempool().
| typedef struct ParallelMempoolState ParallelMempoolState |
| void BLI_task_parallel_mempool | ( | struct BLI_mempool * | mempool, |
| void * | userdata, | ||
| TaskParallelMempoolFunc | func, | ||
| const TaskParallelSettings * | settings ) |
This function allows to parallelize for loops over Mempool items.
| mempool | The iterable BLI_mempool to loop over. |
| userdata | Common userdata passed to all instances of func. |
| func | Callback function. |
| settings | See public API doc of TaskParallelSettings for description of all settings. |
Definition at line 55 of file task_iterator.c.
References BLI_mempool_iternew(), BLI_mempool_iterstep(), BLI_mempool_len(), BLI_task_pool_create(), BLI_task_pool_free(), BLI_task_pool_push(), BLI_task_pool_work_and_wait(), BLI_task_scheduler_num_threads(), MALLOCA, MALLOCA_FREE, mempool_iter_threadsafe_create(), mempool_iter_threadsafe_destroy(), NULL, parallel_mempool_func(), state, task_pool, TASK_PRIORITY_HIGH, ParallelMempoolTaskData::tls, UNLIKELY, and TaskParallelTLS::userdata_chunk.
Referenced by armature_deform_coords_impl(), lattice_deform_coords_impl(), TEST(), and TEST().
|
static |
Definition at line 43 of file task_iterator.c.
References BLI_task_pool_user_data(), mempool_iter_threadsafe_step(), NULL, and state.
Referenced by BLI_task_parallel_mempool().