} fd;
#endif
Eina_Bool exit_called : 1;
+ Eina_Bool run : 1;
};
//////////////////////////////////////////////////////////////////////////
pd->exit_called = EINA_TRUE;
efl_ref(obj);
job = eina_future_then(efl_loop_job(loop), _efl_loop_task_exit, obj);
- efl_future_Eina_FutureXXX_then(loop, job);
+ efl_future_Eina_FutureXXX_then(obj, job);
}
}
int pipe_exited[2];
int ret;
+ if (pd->run) return EINA_FALSE;
if (pd->pid != -1) return EINA_FALSE;
if (!td) return EINA_FALSE;
efl_loop_handler_active_set(efl_added,
EFL_LOOP_HANDLER_FLAGS_READ));
_ecore_signal_pid_unlock();
+ pd->run = EINA_TRUE;
return EINA_TRUE;
}
// this code is in the child here, and is temporary setup until we
Eina_Bool end_sent : 1;
Eina_Bool exit_read : 1;
Eina_Bool exit_called : 1;
+ Eina_Bool run : 1;
};
//////////////////////////////////////////////////////////////////////////
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;
return EINA_FALSE;
}
pd->thdat = thdat;
+ pd->run = EINA_TRUE;
return EINA_TRUE;
}