summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/gallium/auxiliary/os/os_thread.h28
-rw-r--r--src/gallium/drivers/ddebug/dd_context.c2
-rw-r--r--src/gallium/drivers/llvmpipe/lp_rast.c2
-rw-r--r--src/gallium/drivers/radeon/r600_gpu_load.c2
-rw-r--r--src/gallium/drivers/rbug/rbug_core.c2
-rw-r--r--src/gallium/state_trackers/nine/nine_state.c2
-rw-r--r--src/gallium/tests/unit/pipe_barrier_test.c2
7 files changed, 7 insertions, 33 deletions
diff --git a/src/gallium/auxiliary/os/os_thread.h b/src/gallium/auxiliary/os/os_thread.h
index 22921231c5d..468fbfe2f92 100644
--- a/src/gallium/auxiliary/os/os_thread.h
+++ b/src/gallium/auxiliary/os/os_thread.h
@@ -39,34 +39,8 @@
#include "pipe/p_compiler.h"
#include "util/u_debug.h" /* for assert */
+#include "util/u_thread.h"
-#include "c11/threads.h"
-
-#ifdef HAVE_PTHREAD
-#include <signal.h>
-#endif
-
-
-static inline thrd_t pipe_thread_create(int (*routine)(void *), void *param)
-{
- thrd_t thread;
-#ifdef HAVE_PTHREAD
- sigset_t saved_set, new_set;
- int ret;
-
- sigfillset(&new_set);
- pthread_sigmask(SIG_SETMASK, &new_set, &saved_set);
- ret = thrd_create( &thread, routine, param );
- pthread_sigmask(SIG_SETMASK, &saved_set, NULL);
-#else
- int ret;
- ret = thrd_create( &thread, routine, param );
-#endif
- if (ret)
- return 0;
-
- return thread;
-}
static inline void pipe_thread_setname( const char *name )
{
diff --git a/src/gallium/drivers/ddebug/dd_context.c b/src/gallium/drivers/ddebug/dd_context.c
index d73b094ffaf..9811663b4da 100644
--- a/src/gallium/drivers/ddebug/dd_context.c
+++ b/src/gallium/drivers/ddebug/dd_context.c
@@ -871,7 +871,7 @@ dd_context_create(struct dd_screen *dscreen, struct pipe_context *pipe)
*dctx->mapped_fence = 0;
(void) mtx_init(&dctx->mutex, mtx_plain);
- dctx->thread = pipe_thread_create(dd_thread_pipelined_hang_detect, dctx);
+ dctx->thread = u_thread_create(dd_thread_pipelined_hang_detect, dctx);
if (!dctx->thread) {
mtx_destroy(&dctx->mutex);
goto fail;
diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c b/src/gallium/drivers/llvmpipe/lp_rast.c
index 678ef0bd0bf..d746778e25f 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast.c
+++ b/src/gallium/drivers/llvmpipe/lp_rast.c
@@ -865,7 +865,7 @@ create_rast_threads(struct lp_rasterizer *rast)
for (i = 0; i < rast->num_threads; i++) {
pipe_semaphore_init(&rast->tasks[i].work_ready, 0);
pipe_semaphore_init(&rast->tasks[i].work_done, 0);
- rast->threads[i] = pipe_thread_create(thread_function,
+ rast->threads[i] = u_thread_create(thread_function,
(void *) &rast->tasks[i]);
}
}
diff --git a/src/gallium/drivers/radeon/r600_gpu_load.c b/src/gallium/drivers/radeon/r600_gpu_load.c
index 1b51af4cdc0..3b45545b7b6 100644
--- a/src/gallium/drivers/radeon/r600_gpu_load.c
+++ b/src/gallium/drivers/radeon/r600_gpu_load.c
@@ -183,7 +183,7 @@ static uint64_t r600_read_mmio_counter(struct r600_common_screen *rscreen,
/* Check again inside the mutex. */
if (!rscreen->gpu_load_thread)
rscreen->gpu_load_thread =
- pipe_thread_create(r600_gpu_load_thread, rscreen);
+ u_thread_create(r600_gpu_load_thread, rscreen);
mtx_unlock(&rscreen->gpu_load_mutex);
}
diff --git a/src/gallium/drivers/rbug/rbug_core.c b/src/gallium/drivers/rbug/rbug_core.c
index d09c4b51960..64c2d63a789 100644
--- a/src/gallium/drivers/rbug/rbug_core.c
+++ b/src/gallium/drivers/rbug/rbug_core.c
@@ -857,7 +857,7 @@ rbug_start(struct rbug_screen *rb_screen)
tr_rbug->rb_screen = rb_screen;
tr_rbug->running = TRUE;
- tr_rbug->thread = pipe_thread_create(rbug_thread, tr_rbug);
+ tr_rbug->thread = u_thread_create(rbug_thread, tr_rbug);
return tr_rbug;
}
diff --git a/src/gallium/state_trackers/nine/nine_state.c b/src/gallium/state_trackers/nine/nine_state.c
index 47a715d5cc9..ef33942a62a 100644
--- a/src/gallium/state_trackers/nine/nine_state.c
+++ b/src/gallium/state_trackers/nine/nine_state.c
@@ -163,7 +163,7 @@ nine_csmt_create( struct NineDevice9 *This )
ctx->device = This;
- ctx->worker = pipe_thread_create(nine_csmt_worker, ctx);
+ ctx->worker = u_thread_create(nine_csmt_worker, ctx);
if (!ctx->worker) {
nine_queue_delete(ctx->pool);
FREE(ctx);
diff --git a/src/gallium/tests/unit/pipe_barrier_test.c b/src/gallium/tests/unit/pipe_barrier_test.c
index f77f1e1a8ef..58ad7e29630 100644
--- a/src/gallium/tests/unit/pipe_barrier_test.c
+++ b/src/gallium/tests/unit/pipe_barrier_test.c
@@ -113,7 +113,7 @@ int main(int argc, char *argv[])
for (i = 0; i < NUM_THREADS; i++) {
thread_ids[i] = i;
- threads[i] = pipe_thread_create(thread_function, (void *) &thread_ids[i]);
+ threads[i] = u_thread_create(thread_function, (void *) &thread_ids[i]);
}
for (i = 0; i < NUM_THREADS; i++ ) {