jayji pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=469cf26873403f0453841ff9902d7d8b73cdc434

commit 469cf26873403f0453841ff9902d7d8b73cdc434
Author: Jean Guyomarc'h <jean.guyoma...@openwide.fr>
Date:   Tue Aug 23 16:51:54 2016 +0200

    evas: handle thread queue creation failure
    
    eina_thread_queue_create() might fail.
    Actually it does fail on Mac OS X under
    some circumstances.
---
 src/lib/evas/common/evas_scale_sample.c | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/src/lib/evas/common/evas_scale_sample.c 
b/src/lib/evas/common/evas_scale_sample.c
index 61f071f..008e43d 100644
--- a/src/lib/evas/common/evas_scale_sample.c
+++ b/src/lib/evas/common/evas_scale_sample.c
@@ -871,15 +871,30 @@ evas_common_scale_sample_init(void)
    if (eina_cpu_count() <= 2) return ;
 
    thread_queue = eina_thread_queue_new();
+   if (EINA_UNLIKELY(!thread_queue))
+     {
+        ERR("Failed to create thread queue");
+        goto cleanup;
+     }
    main_queue = eina_thread_queue_new();
+   if (EINA_UNLIKELY(!thread_queue))
+     {
+        ERR("Failed to create thread queue");
+        goto cleanup;
+     }
 
    if (!eina_thread_create(&scaling_thread, EINA_THREAD_NORMAL, -1,
                            _evas_common_scale_sample_thread, NULL))
      {
-        return;
+        goto cleanup;
      }
 
    use_thread = EINA_TRUE;
+   return;
+
+cleanup:
+   if (thread_queue) eina_thread_queue_free(thread_queue);
+   if (main_queue) eina_thread_queue_free(main_queue);
 }
 
 EAPI void

-- 


Reply via email to