aboutsummaryrefslogtreecommitdiffstats
path: root/cont.c
diff options
context:
space:
mode:
Diffstat (limited to 'cont.c')
-rw-r--r--cont.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/cont.c b/cont.c
index 4210ab97d5..97a805d0ab 100644
--- a/cont.c
+++ b/cont.c
@@ -173,11 +173,14 @@ cont_restore_1(rb_context_t *cont)
}
else {
/* continuation */
+ VALUE fval;
+
th->fiber = sth->fiber;
+ fval = th->fiber ? th->fiber : th->root_fiber;
- if (th->fiber) {
+ if (fval) {
rb_context_t *fcont;
- GetContPtr(th->fiber, fcont);
+ GetContPtr(fval, fcont);
th->stack_size = fcont->saved_thread.stack_size;
th->stack = fcont->saved_thread.stack;
}