eina_lock_release(&_thread_mutex);
eina_lock_take(&_thread_feedback_mutex);
- while (current_id == _thread_id)
+ while (current_id == _thread_id && _thread_id != -1)
eina_condition_wait(&_thread_feedback_cond);
eina_lock_release(&_thread_feedback_mutex);
eina_condition_wait(&_thread_cond);
eina_lock_release(&_thread_mutex);
- _thread_id = -1;
-
eina_main_loop_define();
eina_lock_take(&_thread_feedback_mutex);
+
+ _thread_id = -1;
+
eina_condition_broadcast(&_thread_feedback_cond);
eina_lock_release(&_thread_feedback_mutex);