aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/ecore/efl_thread.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/ecore/efl_thread.c')
-rw-r--r--src/lib/ecore/efl_thread.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/src/lib/ecore/efl_thread.c b/src/lib/ecore/efl_thread.c
index 857c3c529e..bab5c01717 100644
--- a/src/lib/ecore/efl_thread.c
+++ b/src/lib/ecore/efl_thread.c
@@ -75,6 +75,7 @@ struct _Efl_Thread_Data
Eina_Bool end_sent : 1;
Eina_Bool exit_read : 1;
Eina_Bool exit_called : 1;
+ Eina_Bool run : 1;
};
//////////////////////////////////////////////////////////////////////////
@@ -582,6 +583,7 @@ _efl_thread_efl_task_run(Eo *obj, Efl_Thread_Data *pd)
Efl_Callback_Array_Item_Full *it;
Efl_Task_Data *td = efl_data_scope_get(obj, EFL_TASK_CLASS);
+ if (pd->run) return EINA_FALSE;
if (!td) return EINA_FALSE;
thdat = calloc(1, sizeof(Thread_Data));
if (!thdat) return EINA_FALSE;
@@ -783,6 +785,7 @@ _efl_thread_efl_task_run(Eo *obj, Efl_Thread_Data *pd)
return EINA_FALSE;
}
pd->thdat = thdat;
+ pd->run = EINA_TRUE;
return EINA_TRUE;
}