diff --git a/src/lib/eina/eina_promise.c b/src/lib/eina/eina_promise.c index 1cbc9f274f..1fbac60f65 100644 --- a/src/lib/eina/eina_promise.c +++ b/src/lib/eina/eina_promise.c @@ -998,6 +998,15 @@ eina_promise_data_get(const Eina_Promise *p) return (void *)p->data; } +EAPI void +eina_promise_data_set(Eina_Promise *p, + void *data) +{ + EINA_SAFETY_ON_NULL_RETURN(p); + p->data = data; +} + + static Eina_Value _eina_future_cb_easy(void *data, const Eina_Value value, const Eina_Future *dead_future) diff --git a/src/lib/eina/eina_promise.h b/src/lib/eina/eina_promise.h index 9c8fc3a8a2..caca9574a9 100644 --- a/src/lib/eina/eina_promise.h +++ b/src/lib/eina/eina_promise.h @@ -553,6 +553,17 @@ EAPI Eina_Promise *eina_promise_new(Eina_Future_Scheduler *scheduler, Eina_Promi */ EAPI void *eina_promise_data_get(const Eina_Promise *p) EINA_ARG_NONNULL(1); +/** + * Sets the data attached to the promise. + * + * Set the data passed to eina_promise_new(). + * @see eina_promise_new() + * @see eina_promise_resolve() + * @see eina_promise_reject() + * @see eina_promise_as_value() + */ +EAPI void eina_promise_data_set(Eina_Promise *p, void *data) EINA_ARG_NONNULL(1); + /** * Resolves a promise. *