ecore: add efl_future_iterator_race.

This commit is contained in:
Cedric BAIL 2016-08-30 16:30:52 -07:00
parent 5edb42d371
commit aaac15126b
2 changed files with 16 additions and 0 deletions

View File

@ -86,6 +86,7 @@ struct _Efl_Future_Race_Success
};
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)

View File

@ -1154,7 +1154,22 @@ efl_future_race_internal(Efl_Future *f1, ...)
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);
}