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.