parrotcode: Thread handling stuff | |
Contents | C |
src/thread.c - Thread handling stuff
Threads are created by creating new ParrotInterpreter
objects.
static void *thread_func(void *arg)
void pt_clone_code(Parrot_Interp d, Parrot_Interp s)
s
to d
.
All resources are created in d
.void pt_thread_prepare_for_run(Parrot_Interp d, Parrot_Interp s)
RetContinuation
PMC.int pt_thread_run(Parrot_Interp interp, PMC *dest_interp, PMC *sub)
*sub
PMC in a separate thread using interpreter in *dest_interp
.int pt_thread_run_1(Parrot_Interp interp, PMC *dest_interp, PMC *sub)
int pt_thread_run_2(Parrot_Interp interp, PMC *dest_interp, PMC *sub)
int pt_thread_run_3(Parrot_Interp interp, PMC *dest_interp, PMC *sub)
void pt_thread_yield(void)
static Parrot_Interp pt_check_tid(UINTVAL tid, const char *from)
tid
is valid.
The caller holds the mutex.
Returns the interpreter for tid
.static void mutex_unlock(void *arg)
*arg
.void *pt_thread_join(Parrot_Interp parent, UINTVAL tid)
void pt_join_threads(Parrot_Interp interpreter)
interpreter
.static Parrot_Interp detach(UINTVAL tid)
void pt_thread_detach(UINTVAL tid)
void pt_thread_kill(UINTVAL tid)
void pt_add_to_interpreters(Parrot_Interp interpreter, Parrot_Interp new_interp)
void pt_DOD_start_mark(Parrot_Interp interpreter)
PMC->next_for_GC
may be changed.dod_mark_ptr
is updated.void pt_DOD_mark_root_finished(Parrot_Interp interpreter)
void pt_DOD_stop_mark(Parrot_Interp interpreter)
2003.12.18 leo initial rev
|