cedric pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=aaac15126b8fd4d691d46c52496d57269d3facdf

commit aaac15126b8fd4d691d46c52496d57269d3facdf
Author: Cedric BAIL <ced...@osg.samsung.com>
Date:   Tue Aug 30 16:30:52 2016 -0700

    ecore: add efl_future_iterator_race.
---
 src/lib/ecore/Ecore_Eo.h    |  1 +
 src/lib/ecore/efl_promise.c | 15 +++++++++++++++
 2 files changed, 16 insertions(+)

diff --git a/src/lib/ecore/Ecore_Eo.h b/src/lib/ecore/Ecore_Eo.h
index 62c4192..fc46941 100644
--- a/src/lib/ecore/Ecore_Eo.h
+++ b/src/lib/ecore/Ecore_Eo.h
@@ -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)
 
diff --git a/src/lib/ecore/efl_promise.c b/src/lib/ecore/efl_promise.c
index 72dfdde..8592c00 100644
--- a/src/lib/ecore/efl_promise.c
+++ b/src/lib/ecore/efl_promise.c
@@ -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);
 }

-- 


Reply via email to