Eina_Future *future;
Eina_Future_Scheduler *scheduler;
Eina_Promise_Cancel_Cb cancel;
- Eina_Free_Cb free_cb;
const void *data;
};
}
static void
-_eina_promise_free(Eina_Promise *p)
-{
- if (p->free_cb) p->free_cb((void*) p->data);
- eina_mempool_free(_promise_mp, p);
-}
-
-static void
_eina_promise_cancel(Eina_Promise *p)
{
DBG("Cancelling promise: %p, data: %p, future: %p", p, p->data, p->future);
_eina_promise_unlink(p);
p->cancel((void *)p->data, p);
- _eina_promise_free(p);
+ eina_mempool_free(_promise_mp, p);
}
static void
DBG("Promise %p has no future", p);
eina_value_flush(&value);
}
- _eina_promise_free(p);
+ eina_mempool_free(_promise_mp, p);
}
Eina_Bool
// This function is called on a promise created with a scheduler, not a continue one.
_eina_future_dispatch(p->scheduler, f, v);
}
- _eina_promise_free(p);
+ eina_mempool_free(_promise_mp, p);
}
static Eina_Value
p->data = data;
}
-EAPI void
-eina_promise_data_free_cb_set(Eina_Promise *p,
- Eina_Free_Cb free_cb)
-{
- EINA_SAFETY_ON_NULL_RETURN(p);
- p->free_cb = free_cb;
-}
static Eina_Value
_eina_future_cb_easy(void *data, const Eina_Value value,
EAPI void eina_promise_data_set(Eina_Promise *p, void *data) EINA_ARG_NONNULL(1);
/**
- * Sets the free callback used when the data attached on the promise is freed just before the destruction of the promise itself.
- *
- * @param[in] p The promise to set the free callback on.
- * @param[in] free_cb The free callback.
- */
-EAPI void eina_promise_data_free_cb_set(Eina_Promise *p, Eina_Free_Cb free_cb);
-
-/**
* Resolves a promise.
*
* This function schedules a resolve event in a