Add a new parallel looper for MemPool items to BLI_task.
[blender-staging.git] / source / blender / blenlib / BLI_task.h
index 721327d26a861eb9ccdf25438a4f3be3e8a6a650..ccfa2b6e2e760ed838c594f4856d3d7986b61d18 100644 (file)
@@ -35,6 +35,8 @@ extern "C" {
 #include "BLI_threads.h"
 #include "BLI_utildefines.h"
 
+struct BLI_mempool;
+
 /* Task Scheduler
  * 
  * Central scheduler that holds running threads ready to execute tasks. A single
@@ -150,6 +152,15 @@ void BLI_task_parallel_listbase(
         TaskParallelListbaseFunc func,
         const bool use_threading);
 
+typedef struct MempoolIterData MempoolIterData;
+typedef void (*TaskParallelMempoolFunc)(void *userdata,
+                                        MempoolIterData *iter);
+void BLI_task_parallel_mempool(
+        struct BLI_mempool *mempool,
+        void *userdata,
+        TaskParallelMempoolFunc func,
+        const bool use_threading);
+
 #ifdef __cplusplus
 }
 #endif