From a613126be4f854e9b317d69f5cd7145896392f3d Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Mon, 25 Apr 2011 17:11:58 +0000 Subject: [PATCH] evas: don't forget to init eina_threads when using threads. SVN revision: 58908 --- legacy/evas/src/lib/engines/common/evas_pipe.c | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/legacy/evas/src/lib/engines/common/evas_pipe.c b/legacy/evas/src/lib/engines/common/evas_pipe.c index 1f1b030b41..b18ab0de96 100644 --- a/legacy/evas/src/lib/engines/common/evas_pipe.c +++ b/legacy/evas/src/lib/engines/common/evas_pipe.c @@ -165,7 +165,9 @@ evas_common_frameq_destroy(void) LKU(gframeq.mutex); #endif LKD(gframeq.mutex); - + + eina_threads_shutdown(); + gframeq.frames = NULL; gframeq.initialised = 0; } @@ -869,6 +871,8 @@ evas_common_frameq_begin(void) gframeq.thread_num = cpunum; gframeq.frameq_sz = cpunum * FRAMEQ_SZ_PER_THREAD; + eina_threads_init(); + for (i = 0; i < gframeq.thread_num; i++) { @@ -1637,6 +1641,8 @@ evas_common_pipe_init(void) // waiting onm pthread barriers for async rendering on a single core! // if (thread_num == 1) return EINA_FALSE; + eina_threads_init(); + pthread_barrier_init(&(thbarrier[0]), NULL, thread_num + 1); pthread_barrier_init(&(thbarrier[1]), NULL, thread_num + 1); for (i = 0; i < thread_num; i++) @@ -1676,11 +1682,8 @@ evas_common_pipe_init(void) evas_common_pipe_load, &(task_thinfo[i])); pthread_attr_destroy(&attr); } - -#if defined(METRIC_CACHE) || defined(WORD_CACHE) - eina_threads_init(); -#endif } + if (thread_num == 1) return EINA_FALSE; return EINA_TRUE; #endif