efl.task - add an api to clear environment
This commit is contained in:
parent
6c0ed8fe76
commit
aabbb211ea
|
@ -901,6 +901,21 @@ _efl_loop_efl_task_env_get(Eo *obj, Efl_Loop_Data *pd, const char *var)
|
|||
return efl_task_env_get(efl_super(obj, EFL_LOOP_CLASS), var);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_loop_efl_task_env_reset(Eo *obj EINA_UNUSED, Efl_Loop_Data *pd)
|
||||
{
|
||||
Efl_Task_Data *td = efl_data_scope_get(obj, EFL_TASK_CLASS);
|
||||
if (!td) return;
|
||||
eina_lock_take(&_environ_lock);
|
||||
#ifdef HAVE_CLEARENV
|
||||
clearenv();
|
||||
#else
|
||||
environ = NULL;
|
||||
#endif
|
||||
_env_sync(pd, td);
|
||||
eina_lock_release(&_environ_lock);
|
||||
}
|
||||
|
||||
EOLIAN static Eina_Bool
|
||||
_efl_loop_efl_task_run(Eo *obj, Efl_Loop_Data *pd EINA_UNUSED)
|
||||
{
|
||||
|
|
|
@ -127,6 +127,7 @@ class Efl.Loop (Efl.Task)
|
|||
Efl.Object.destructor;
|
||||
Efl.Object.provider_find;
|
||||
Efl.Task.env { set; get; }
|
||||
Efl.Task.env_reset;
|
||||
Efl.Task.run;
|
||||
Efl.Task.end;
|
||||
}
|
||||
|
|
|
@ -343,6 +343,13 @@ _efl_task_env_get(Eo *obj EINA_UNUSED, Efl_Task_Data *pd, const char *var)
|
|||
return eina_hash_find(pd->env, var);
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_task_env_reset(Eo *obj EINA_UNUSED, Efl_Task_Data *pd)
|
||||
{
|
||||
if (pd->env) eina_hash_free(pd->env);
|
||||
pd->env = NULL;
|
||||
}
|
||||
|
||||
EOLIAN static void
|
||||
_efl_task_priority_set(Eo *obj EINA_UNUSED, Efl_Task_Data *pd, Efl_Task_Priority priority)
|
||||
{
|
||||
|
|
|
@ -108,6 +108,9 @@ class Efl.Task (Efl.Object, Efl.Io.Reader, Efl.Io.Writer, Efl.Io.Closer)
|
|||
is $NULL or if it is an empty string ]]
|
||||
}
|
||||
}
|
||||
env_reset {
|
||||
[[ Clear all environment variables. ]]
|
||||
}
|
||||
@property priority {
|
||||
[[ The priority of this task. ]]
|
||||
get { }
|
||||
|
|
Loading…
Reference in New Issue