summaryrefslogtreecommitdiffstats
path: root/src/gallium/drivers/llvmpipe/lp_rast.c
diff options
context:
space:
mode:
authorJosé Fonseca <[email protected]>2014-11-13 15:01:19 +0000
committerJosé Fonseca <[email protected]>2014-11-13 15:01:19 +0000
commitd5b1731178378b3d828c74368f6bfe85edc10618 (patch)
treee1cbacb5bd7ca2e0fff878ba032bddda71bd04f5 /src/gallium/drivers/llvmpipe/lp_rast.c
parent2b6e703863f7e5469ba8d82003282cc42f277d5e (diff)
llvmpipe: Call pipe_thread_wait() on Linux.
To address http://lists.freedesktop.org/archives/mesa-dev/2014-November/070569.html In short, revert 706ad3b649e6a75fdac9dc9acc3caa9e6067b853 for non-Windows OSes.
Diffstat (limited to 'src/gallium/drivers/llvmpipe/lp_rast.c')
-rw-r--r--src/gallium/drivers/llvmpipe/lp_rast.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/src/gallium/drivers/llvmpipe/lp_rast.c b/src/gallium/drivers/llvmpipe/lp_rast.c
index 6b54d4374f7..e168766e348 100644
--- a/src/gallium/drivers/llvmpipe/lp_rast.c
+++ b/src/gallium/drivers/llvmpipe/lp_rast.c
@@ -800,7 +800,9 @@ static PIPE_THREAD_ROUTINE( thread_function, init_data )
pipe_semaphore_signal(&task->work_done);
}
+#ifdef _WIN32
pipe_semaphore_signal(&task->work_done);
+#endif
return 0;
}
@@ -891,7 +893,11 @@ void lp_rast_destroy( struct lp_rasterizer *rast )
* We don't actually call pipe_thread_wait to avoid dead lock on Windows
* per https://bugs.freedesktop.org/show_bug.cgi?id=76252 */
for (i = 0; i < rast->num_threads; i++) {
+#ifdef _WIN32
pipe_semaphore_wait(&rast->tasks[i].work_done);
+#else
+ pipe_thread_wait(rast->threads[i]);
+#endif
}
/* Clean up per-thread data */