Method

DexStateTransitionContextcontinue_to

unstable since: 1.2

Declaration [src]

gboolean
dex_state_transition_context_continue_to (
  DexStateTransitionContext* context,
  guint target,
  GError** error
)

Description [src]

Attempts to continue from the current transition to target immediately.

The continuation runs while the state machine still holds its internal serialization slot, so queued dex_state_machine_transition() requests are not processed first. If context has not explicitly set the state with dex_state_transition_context_set_state(), the current edge target is committed before the next edge is executed.

The next transition callback is called before this function returns. If that callback uses dex_await(), the same transition fiber suspends and resumes, while the state machine still holds the serialization slot. Chained continuations therefore use the normal C call stack and should be reserved for short, bounded chains rather than unbounded graph traversal.

The next edge is looked up from the real current state to target. If no such edge exists, FALSE is returned and error is set to DEX_ERROR_INVALID_TRANSITION. If the next edge callback fails, its error is propagated.

Available since: 1.2

Parameters

target

Type: guint

The target state for the next edge.

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 continuation succeeded; otherwise FALSE.