summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCedric BAIL <cedric@osg.samsung.com>2016-11-03 18:01:43 -0700
committerCedric BAIL <cedric@osg.samsung.com>2016-11-03 18:03:16 -0700
commit59a635d251047f34da5b8edc7f956600b77167e8 (patch)
treef9b45a87faaaa5997385c48c6bcc28c9b74442d0
parenta7ff7ceebbe8134e264f8d4e976bf4fccb19f8fa (diff)
downloadefl-59a635d251047f34da5b8edc7f956600b77167e8.tar.gz
ecore: make call to future_get and value_set irrelevant as they should be.
-rw-r--r--src/lib/ecore/efl_promise.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/lib/ecore/efl_promise.c b/src/lib/ecore/efl_promise.c
index 2d3b6137d7..fdaf2ea9ce 100644
--- a/src/lib/ecore/efl_promise.c
+++ b/src/lib/ecore/efl_promise.c
@@ -525,6 +525,15 @@ _efl_promise_future_get(Eo *obj, Efl_Promise_Data *pd EINA_UNUSED)
fd->promise = efl_data_xref(obj, EFL_PROMISE_CLASS, f);
fd->promise->futures = eina_list_append(fd->promise->futures, fd);
+ // The promise has already been fullfilled, prepare the propagation
+ if (fd->promise->message)
+ {
+ fd->message = fd->promise->message;
+ EINA_REFCOUNT_REF(fd->message);
+
+ _efl_loop_future_propagate(f, fd);
+ }
+
return f;
}