
src/pmc/continuation.pmc - Continuation PMC

A Continuation has a copy of the interpreter's context at the location where the Continuation was constructed.
See the Glossary for more information.
void init()Initializes the continuation.
void init_pmc(PMC *continuation)Initializes the continuation with values from the provided continuation.
void mark()Marks the continuation as live.
PMC * get_attr_str(STRING *attr)Get the value of an attribute by name
PMC *clone()Creates and returns a clone of the continuation.
PMC *set_pmc()Assigns context.
void set_pointer(void *value)Sets the pointer to the given return instruction and captures the runloop id for any returned values.
void *get_pointer()Returns the pointer to the return instruction.
INTVAL defined()INTVAL get_bool()Returns whether the subroutine is defined.
opcode_t *invoke(void *next)Restores the context of the interpreter and returns the branch destination to continue execution.
STRING *get_string()Experimental: returns caller info as a STRING.
INTVAL rid()Experimental: return the runloop_id value.
PMC *caller()Experimental: return callers PMC or PMCNULL if none.
PMC *continuation()Experimental: fetches the return continuation PMC of this Continuation or PMCNULL if none.