Restructure promise API, use it in cosmo, add test.
This commit is contained in:
@@ -7,13 +7,15 @@ typedef struct promise promise;
|
||||
|
||||
// (passthrough, result)
|
||||
typedef void (*promise_callback)(void *, void *);
|
||||
typedef void (*promise_cleanup)(void *);
|
||||
|
||||
promise *promise_create(bool will_wait, promise_callback on_success, promise_callback on_failure, void *passthrough);
|
||||
promise *promise_create(promise_callback on_success, promise_callback on_failure, void *passthrough);
|
||||
bool promise_wait(promise *promise_obj, void **result);
|
||||
void promise_destroy(promise *promise_obj);
|
||||
|
||||
void promise_complete(promise *promise_obj, void *result, bool success);
|
||||
void promise_complete(promise *promise_obj, void *result, promise_cleanup cleanup, bool success);
|
||||
// Shortcuts for promise_complete()
|
||||
void promise_succeed(promise *promise_obj, void *result);
|
||||
void promise_fail(promise *promise_obj, void *result);
|
||||
void promise_succeed(promise *promise_obj, void *result, promise_cleanup cleanup);
|
||||
void promise_fail(promise *promise_obj, void *result, promise_cleanup cleanup);
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user