gallium/u_queue: isolate util_queue_fence implementation
[mesa.git] / src / gallium / auxiliary / util / u_queue.h
index 351315c5780f2c0662b1e173bbe5a967f02b273f..2e0a5a36e269999d0ead0152098fd81d8d8793e5 100644 (file)
@@ -34,6 +34,7 @@
 #define U_QUEUE_H
 
 #include "os/os_thread.h"
+#include "util/list.h"
 
 /* Job completion fence.
  * Put this into your job structure.
@@ -66,6 +67,9 @@ struct util_queue {
    int max_jobs;
    int write_idx, read_idx; /* ring buffer pointers */
    struct util_queue_job *jobs;
+
+   /* for cleanup at exit(), protected by exit_mutex */
+   struct list_head head;
 };
 
 bool util_queue_init(struct util_queue *queue,
@@ -83,7 +87,7 @@ void util_queue_add_job(struct util_queue *queue,
                         util_queue_execute_func execute,
                         util_queue_execute_func cleanup);
 
-void util_queue_job_wait(struct util_queue_fence *fence);
+void util_queue_fence_wait(struct util_queue_fence *fence);
 int64_t util_queue_get_thread_time_nano(struct util_queue *queue,
                                         unsigned thread_index);