From fc508ff38b968bf870104b813db9d1b6496af22f Mon Sep 17 00:00:00 2001 From: ko1 Date: Sun, 10 Sep 2017 17:30:16 +0000 Subject: clear `stack_end`. * cont.c (cont_save_thread): clear only `stack_end`. Clearing tells GC mark function to ignore this macine stack (not allocated yet). `stack_start` will be used by machine stack store/restore phase (on FIBER_USE_NATIVE == 0), so that only `stack_end` is cleared. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59829 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- cont.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) (limited to 'cont.c') diff --git a/cont.c b/cont.c index 8fa1f1e46a..dd15c30a4c 100644 --- a/cont.c +++ b/cont.c @@ -485,16 +485,14 @@ cont_save_thread(rb_context_t *cont, rb_thread_t *th) /* save thread context */ sth->ec = th->ec; -#if FIBER_USE_NATIVE - /* saved_thread->machine.stack_(start|end) should be NULL */ + /* saved_thread->machine.stack_end should be NULL */ /* because it may happen GC afterward */ - sth->ec.machine.stack_start = NULL; sth->ec.machine.stack_end = NULL; + #ifdef __ia64 sth->ec.machine.register_stack_start = NULL; sth->ec.machine.register_stack_end = NULL; #endif -#endif } static void -- cgit v1.2.3