Feature #10341 » 0003-Small-code-cleanup.patch
cont.c | ||
---|---|---|
cont_capture(volatile int *stat)
|
||
{
|
||
rb_context_t *cont;
|
||
rb_thread_t *th = GET_THREAD(), *sth;
|
||
rb_thread_t *th = GET_THREAD();
|
||
volatile VALUE contval;
|
||
THREAD_MUST_BE_RUNNING(th);
|
||
rb_vm_stack_to_heap(th);
|
||
cont = cont_new(rb_cContinuation);
|
||
contval = cont->self;
|
||
sth = &cont->saved_thread;
|
||
#ifdef CAPTURE_JUST_VALID_VM_STACK
|
||
cont->vm_stack_slen = th->cfp->sp + th->mark_stack_len - th->stack;
|
||
... | ... | |
cont->vm_stack = ALLOC_N(VALUE, th->stack_size);
|
||
MEMCPY(cont->vm_stack, th->stack, VALUE, th->stack_size);
|
||
#endif
|
||
sth->stack = 0;
|
||
cont->saved_thread.stack = 0;
|
||
cont_save_machine_stack(th, cont);
|
||