NAME
src/pmc/scheduler.pmc - The concurrency scheduler
DESCRIPTION
Implements the core concurrency scheduler.
Vtable Functions
void init()
Initializes a concurrency scheduler object.
void init_pmc(PMC *data)
Initializes a new Scheduler with a id
An void push_pmc(PMC *value)
Inserts a task into the task list.
void unshift_pmc(PMC *value)
Inserts a task into the head of the task list.
PMC *shift_pmc()
Retrieves the next task from the task list.
INTVAL get_integer()
Retrieves the number of pending tasks in the scheduler's task list.
void destroy()
Frees the scheduler's underlying struct.
void mark()
Marks any referenced strings and PMCs as live.
void visit(PMC *info)
Visits the contents of the scheduler (used by freeze/thaw).void freeze(PMC *info)
Archives the scheduler.
void thaw(PMC *info)
Unarchives the scheduler.
void thawfinish(PMC *info)
Finishes thawing the scheduler.
Hash
PMC with any or all of the keys:
Integer
representing the unique identifier for this scheduler.*info
is the visit info (see include/parrot/pmc_freeze.h).
Methods
METHOD active_tasks()
Returns a ResizablePMCArray containing pointers to all active tasks.
SEE ALSO
docs/pdds/pdd25_concurrency.pod.