gallium/util: replace pipe_thread_create() with u_thread_create()
authorTimothy Arceri <tarceri@itsqueeze.com>
Wed, 8 Mar 2017 22:57:58 +0000 (09:57 +1100)
committerTimothy Arceri <tarceri@itsqueeze.com>
Sun, 12 Mar 2017 06:49:04 +0000 (17:49 +1100)
They do the same thing we just moved the function to be
accessible to all of Mesa.

Reviewed-by: Marek Olšák <marek.olsak@amd.com>
src/gallium/auxiliary/os/os_thread.h
src/gallium/drivers/ddebug/dd_context.c
src/gallium/drivers/llvmpipe/lp_rast.c
src/gallium/drivers/radeon/r600_gpu_load.c
src/gallium/drivers/rbug/rbug_core.c
src/gallium/state_trackers/nine/nine_state.c
src/gallium/tests/unit/pipe_barrier_test.c

index 22921231c5d16b2c6d12f03723866770dd92e028..468fbfe2f9243b305773517fef479ce641dd10c6 100644 (file)
 
 #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 )
 {
index d73b094ffafd2c1d7c9ec1548e82945f0a410f88..9811663b4da4de55006f3995cbbb39b6d85d0ee0 100644 (file)
@@ -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;
index 678ef0bd0bf5532efaa5c0288eae00b1fd4ead33..d746778e25f104db866959f2bb1888c4d7fde6a4 100644 (file)
@@ -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]);
    }
 }
index 1b51af4cdc011b96e18db0b2bcc3a37ae6fdd9a6..3b45545b7b6f3c5884b288609d0b258976950da7 100644 (file)
@@ -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);
        }
 
index d09c4b51960477f4e3a716f2f9cf822ddf379506..64c2d63a789d15a4be4640eed5452a79aa9ea307 100644 (file)
@@ -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;
 }
index 47a715d5cc9e15e31a3d64512e73da871ad04f93..ef33942a62a23863fa0905850720c9feecdb16ad 100644 (file)
@@ -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);
index f77f1e1a8eff9aa7e44dd88ad41a849fcf459f7e..58ad7e29630409c4446932b7dd930dedc80dbc41 100644 (file)
@@ -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++ ) {