diff options
Diffstat (limited to 'source/blender/blenlib/BLI_threads.h')
-rw-r--r-- | source/blender/blenlib/BLI_threads.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/source/blender/blenlib/BLI_threads.h b/source/blender/blenlib/BLI_threads.h index ace9ddd729f..089ee9bdbdd 100644 --- a/source/blender/blenlib/BLI_threads.h +++ b/source/blender/blenlib/BLI_threads.h @@ -107,6 +107,21 @@ void BLI_destroy_worker(struct ThreadedWorker *worker); * NOTE: inserting work is NOT thread safe, so make sure it is only done from one thread */ void BLI_insert_work(struct ThreadedWorker *worker, void *param); +/* ThreadWorkQueue + * + * Thread-safe work queue to push work/pointers between threads. */ + +typedef struct ThreadQueue ThreadQueue; + +ThreadQueue *BLI_thread_queue_init(); +void BLI_thread_queue_free(ThreadQueue *queue); + +void BLI_thread_queue_push(ThreadQueue *queue, void *work); +void *BLI_thread_queue_pop(ThreadQueue *queue); +void *BLI_thread_queue_pop_timeout(ThreadQueue *queue, int ms); +int BLI_thread_queue_size(ThreadQueue *queue); + +void BLI_thread_queue_nowait(ThreadQueue *queue); #endif |