aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChunEon Park <chuneon.park@samsung.com>2013-02-25 16:56:25 +0900
committerChunEon Park <chuneon.park@samsung.com>2013-02-25 16:56:25 +0900
commit2af4cc2687e68897fe77a3080352b0a1d15b6620 (patch)
treefeb2c235fb7e8c43469a5841ec4527f6c668cef9
parent0920a8e182d022f0b7b527ce657265deae4580bd (diff)
downloadefl-2af4cc2687e68897fe77a3080352b0a1d15b6620.tar.gz
efl-2af4cc2687e68897fe77a3080352b0a1d15b6620.tar.xz
efl-2af4cc2687e68897fe77a3080352b0a1d15b6620.zip
* evas/cache: remove the freed worker from the pthread worker list when it's failed to create a new thread so as not to access it if a thread is working newly.
-rw-r--r--ChangeLog4
-rw-r--r--NEWS2
-rw-r--r--src/lib/evas/cache/evas_preload.c1
3 files changed, 6 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 5207cbca5..3504de1cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2013-02-23 ChunEon Park (Hermet)
+
+ * Evas cache: remove the freed worker from the pthread worker list when it's failed to create a new thread so as not to access it if a thread is working newly.
+
2013-02-21 Tom Hacohen (TAsn)
* Evas text: Fixed bug with the text object direction detection.
diff --git a/NEWS b/NEWS
index d4f5c06d0..88792906c 100644
--- a/NEWS
+++ b/NEWS
@@ -179,4 +179,4 @@ Fixes:
* Fix ecore-x edid fetch to ftech 128, not 100 bytes.
* Evas text: Fixed bug with the text object direction detection.
* Evas font: Fixed font run detection for specific cases with 2 different fonts in the middle of a run.
-
+ * Evas cache: remove the freed worker from the pthread worker list when it's failed to create a new thread so as not to access it if a thread is working newly.
diff --git a/src/lib/evas/cache/evas_preload.c b/src/lib/evas/cache/evas_preload.c
index 4ff103b7c..f3121a9e3 100644
--- a/src/lib/evas/cache/evas_preload.c
+++ b/src/lib/evas/cache/evas_preload.c
@@ -192,6 +192,7 @@ on_error:
LKL(_mutex);
if (_threads_count == 0)
{
+ _workers = EINA_INLIST_CONTAINER_GET(eina_inlist_remove(EINA_INLIST_GET(_workers), EINA_INLIST_GET(work)), Evas_Preload_Pthread_Worker);
LKU(_mutex);
if (work->func_cancel) work->func_cancel(work->data);
free(work);