[Bf-blender-cvs] [0f171d4] master: BLI_threads Queue: add `BLI_thread_queue_is_empty()`.
Bastien Montagne
noreply at git.blender.org
Fri Jun 19 12:33:05 CEST 2015
Commit: 0f171d4a2599f9c8d1205e319de1024bf030f762
Author: Bastien Montagne
Date: Fri Jun 19 12:30:21 2015 +0200
Branches: master
https://developer.blender.org/rB0f171d4a2599f9c8d1205e319de1024bf030f762
BLI_threads Queue: add `BLI_thread_queue_is_empty()`.
Avoids counting the whole queue when we only want to check whether it is empty or not!
===================================================================
M source/blender/blenlib/BLI_threads.h
M source/blender/blenlib/intern/threads.c
===================================================================
diff --git a/source/blender/blenlib/BLI_threads.h b/source/blender/blenlib/BLI_threads.h
index 18b8fea..b2ead15 100644
--- a/source/blender/blenlib/BLI_threads.h
+++ b/source/blender/blenlib/BLI_threads.h
@@ -175,6 +175,7 @@ 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);
+bool BLI_thread_queue_is_empty(ThreadQueue *queue);
void BLI_thread_queue_wait_finish(ThreadQueue *queue);
void BLI_thread_queue_nowait(ThreadQueue *queue);
diff --git a/source/blender/blenlib/intern/threads.c b/source/blender/blenlib/intern/threads.c
index 5029595..73cadea 100644
--- a/source/blender/blenlib/intern/threads.c
+++ b/source/blender/blenlib/intern/threads.c
@@ -777,6 +777,17 @@ int BLI_thread_queue_size(ThreadQueue *queue)
return size;
}
+bool BLI_thread_queue_is_empty(ThreadQueue *queue)
+{
+ bool is_empty;
+
+ pthread_mutex_lock(&queue->mutex);
+ is_empty = BLI_gsqueue_is_empty(queue->queue);
+ pthread_mutex_unlock(&queue->mutex);
+
+ return is_empty;
+}
+
void BLI_thread_queue_nowait(ThreadQueue *queue)
{
pthread_mutex_lock(&queue->mutex);
More information about the Bf-blender-cvs
mailing list