forked from enlightenment/efl
Revert "eina: add a function to free Eina_Promise attached data when the promise is destroyed."
A better solution is to actually have no eina_promise_data_set/get at all.
This reverts commit ce56f32270
.
Reviewed-by: Mike Blumenkrantz <michael.blumenkrantz@gmail.com>
Differential Revision: https://phab.enlightenment.org/D7574
This commit is contained in:
parent
d67a7df9ca
commit
b3d04f7200
|
@ -103,7 +103,6 @@ struct _Eina_Promise {
|
||||||
Eina_Future *future;
|
Eina_Future *future;
|
||||||
Eina_Future_Scheduler *scheduler;
|
Eina_Future_Scheduler *scheduler;
|
||||||
Eina_Promise_Cancel_Cb cancel;
|
Eina_Promise_Cancel_Cb cancel;
|
||||||
Eina_Free_Cb free_cb;
|
|
||||||
const void *data;
|
const void *data;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -306,20 +305,13 @@ _eina_promise_link(Eina_Promise *p, Eina_Future *f)
|
||||||
DBG("Linking future %p with promise %p", f, p);
|
DBG("Linking future %p with promise %p", f, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
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
|
static void
|
||||||
_eina_promise_cancel(Eina_Promise *p)
|
_eina_promise_cancel(Eina_Promise *p)
|
||||||
{
|
{
|
||||||
DBG("Cancelling promise: %p, data: %p, future: %p", p, p->data, p->future);
|
DBG("Cancelling promise: %p, data: %p, future: %p", p, p->data, p->future);
|
||||||
_eina_promise_unlink(p);
|
_eina_promise_unlink(p);
|
||||||
p->cancel((void *)p->data, p);
|
p->cancel((void *)p->data, p);
|
||||||
_eina_promise_free(p);
|
eina_mempool_free(_promise_mp, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -524,7 +516,7 @@ _eina_promise_deliver(Eina_Promise *p,
|
||||||
DBG("Promise %p has no future", p);
|
DBG("Promise %p has no future", p);
|
||||||
eina_value_flush(&value);
|
eina_value_flush(&value);
|
||||||
}
|
}
|
||||||
_eina_promise_free(p);
|
eina_mempool_free(_promise_mp, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
Eina_Bool
|
Eina_Bool
|
||||||
|
@ -643,7 +635,7 @@ _eina_promise_clean_dispatch(Eina_Promise *p, Eina_Value v)
|
||||||
// This function is called on a promise created with a scheduler, not a continue one.
|
// This function is called on a promise created with a scheduler, not a continue one.
|
||||||
_eina_future_dispatch(p->scheduler, f, v);
|
_eina_future_dispatch(p->scheduler, f, v);
|
||||||
}
|
}
|
||||||
_eina_promise_free(p);
|
eina_mempool_free(_promise_mp, p);
|
||||||
}
|
}
|
||||||
|
|
||||||
static Eina_Value
|
static Eina_Value
|
||||||
|
@ -1119,13 +1111,6 @@ eina_promise_data_set(Eina_Promise *p,
|
||||||
p->data = data;
|
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
|
static Eina_Value
|
||||||
_eina_future_cb_easy(void *data, const Eina_Value value,
|
_eina_future_cb_easy(void *data, const Eina_Value value,
|
||||||
|
|
|
@ -628,14 +628,6 @@ EAPI void *eina_promise_data_get(const Eina_Promise *p) EINA_ARG_NONNULL(1);
|
||||||
*/
|
*/
|
||||||
EAPI void eina_promise_data_set(Eina_Promise *p, void *data) EINA_ARG_NONNULL(1);
|
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.
|
* Resolves a promise.
|
||||||
*
|
*
|
||||||
|
|
Loading…
Reference in New Issue