forked from enlightenment/efl
ecore: add efl_future_iterator_race.
This commit is contained in:
parent
5edb42d371
commit
aaac15126b
|
@ -86,6 +86,7 @@ struct _Efl_Future_Race_Success
|
||||||
};
|
};
|
||||||
|
|
||||||
EAPI Efl_Future *efl_future_race_internal(Efl_Future *f1, ...);
|
EAPI Efl_Future *efl_future_race_internal(Efl_Future *f1, ...);
|
||||||
|
EAPI Efl_Future *efl_future_iterator_race(Eina_Iterator *it);
|
||||||
|
|
||||||
#define efl_future_race(...) efl_future_race_internal(__VA_ARGS__, NULL)
|
#define efl_future_race(...) efl_future_race_internal(__VA_ARGS__, NULL)
|
||||||
|
|
||||||
|
|
|
@ -1154,7 +1154,22 @@ efl_future_race_internal(Efl_Future *f1, ...)
|
||||||
eina_array_push(&race->members, fn);
|
eina_array_push(&race->members, fn);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
return _efl_future_race_done(race);
|
||||||
|
}
|
||||||
|
|
||||||
|
EAPI Efl_Future *
|
||||||
|
efl_future_iterator_race(Eina_Iterator *it)
|
||||||
|
{
|
||||||
|
Efl_Promise_Race *race = NULL;
|
||||||
|
Efl_Future *fn;
|
||||||
|
|
||||||
|
if (!it) return NULL;
|
||||||
|
|
||||||
|
EINA_ITERATOR_FOREACH(it, fn)
|
||||||
|
{
|
||||||
|
if (!race) race = _efl_future_race_new(fn);
|
||||||
|
if (race) eina_array_push(&race->members, fn);
|
||||||
|
}
|
||||||
|
|
||||||
return _efl_future_race_done(race);
|
return _efl_future_race_done(race);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue