From 2af4cc2687e68897fe77a3080352b0a1d15b6620 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Mon, 25 Feb 2013 16:56:25 +0900 Subject: [PATCH] * 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. --- ChangeLog | 4 ++++ NEWS | 2 +- src/lib/evas/cache/evas_preload.c | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 5207cbca57..3504de1cd2 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 d4f5c06d09..88792906c5 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 4ff103b7c8..f3121a9e32 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);