summaryrefslogtreecommitdiffstats
path: root/src/gallium/auxiliary/util
diff options
context:
space:
mode:
authorMarek Olšák <[email protected]>2016-06-12 13:36:39 +0200
committerMarek Olšák <[email protected]>2016-06-24 12:24:40 +0200
commit2fba0aaa700bbdef37ac5da6da005b24be570e48 (patch)
tree9aa44ac9a083c5c6201473f8efad27d7e4f84c11 /src/gallium/auxiliary/util
parent404d0d50d8aaf60597668e65a2d7c96cdea53aea (diff)
gallium/u_queue: add an option to name threads
for debugging v2: correct the snprintf use Reviewed-by: Nicolai Hähnle <[email protected]>
Diffstat (limited to 'src/gallium/auxiliary/util')
-rw-r--r--src/gallium/auxiliary/util/u_queue.c9
-rw-r--r--src/gallium/auxiliary/util/u_queue.h2
2 files changed, 11 insertions, 0 deletions
diff --git a/src/gallium/auxiliary/util/u_queue.c b/src/gallium/auxiliary/util/u_queue.c
index a958c04d5db..de0422a0c13 100644
--- a/src/gallium/auxiliary/util/u_queue.c
+++ b/src/gallium/auxiliary/util/u_queue.c
@@ -26,6 +26,7 @@
#include "u_queue.h"
#include "u_memory.h"
+#include "u_string.h"
#include "os/os_time.h"
static void
@@ -61,6 +62,12 @@ static PIPE_THREAD_ROUTINE(util_queue_thread_func, input)
FREE(input);
+ if (queue->name) {
+ char name[16];
+ util_snprintf(name, sizeof(name), "%s:%i", queue->name, thread_index);
+ pipe_thread_setname(name);
+ }
+
while (1) {
struct util_queue_job job;
@@ -96,6 +103,7 @@ static PIPE_THREAD_ROUTINE(util_queue_thread_func, input)
bool
util_queue_init(struct util_queue *queue,
+ const char *name,
unsigned max_jobs,
unsigned num_threads,
void (*execute_job)(void *, int))
@@ -103,6 +111,7 @@ util_queue_init(struct util_queue *queue,
unsigned i;
memset(queue, 0, sizeof(*queue));
+ queue->name = name;
queue->num_threads = num_threads;
queue->max_jobs = max_jobs;
diff --git a/src/gallium/auxiliary/util/u_queue.h b/src/gallium/auxiliary/util/u_queue.h
index f3aa4f6f5c6..f005ad5ef4c 100644
--- a/src/gallium/auxiliary/util/u_queue.h
+++ b/src/gallium/auxiliary/util/u_queue.h
@@ -51,6 +51,7 @@ struct util_queue_job {
/* Put this into your context. */
struct util_queue {
+ const char *name;
pipe_mutex lock;
pipe_semaphore has_space;
pipe_semaphore queued;
@@ -64,6 +65,7 @@ struct util_queue {
};
bool util_queue_init(struct util_queue *queue,
+ const char *name,
unsigned max_jobs,
unsigned num_threads,
void (*execute_job)(void *, int));