Method

DexFutureawait

Declaration [src]

gboolean
dex_await (
  DexFuture* future
  GError** error
)

Description [src]

Suspends the current DexFiber and resumes when future has completed.

If future is completed when this function is called, the fiber will handle the result immediately.

This function may only be called within a DexFiber. To do otherwise will return FALSE and error set to DEX_ERROR_NO_FIBER.

It is an error to call this function in a way that would cause intermediate code to become invalid when resuming the stack. For example, if a foreach-style function taking a callback was to suspend from the callback, undefined behavior may occur such as thread-local-storage having changed.

Parameters

future

Type: DexFuture

A DexFuture.

The instance takes ownership of the data, and is responsible for freeing it.
error

Type: GError **

The return location for a recoverable error.

The argument can be NULL.
If the return location is not NULL, then you must initialize it to a NULL GError*.
The argument will be left initialized to NULL by the method if there are no errors.
In case of error, the argument will be set to a newly allocated GError; the caller will take ownership of the data, and be responsible for freeing it.

Return value

Type: gboolean

TRUE if the future resolved, otherwise FALSE and error is set.