summaryrefslogtreecommitdiff
path: root/cont.c
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-09-08 23:51:14 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-09-08 23:51:14 +0000
commit01fdd48fedd43474fa285629831b001405f565b5 (patch)
treeb047b20a2e723aa27b8ad9ffb043ecc0a15e3886 /cont.c
parent5804d24f51b3ac37458444e9df02aa142534f39c (diff)
fiber: fix machine stack marking when FIBER_USE_NATIVE is 0
* cont.c (cont_mark): mark Fiber machine stack correctly when FIBER_USE_NATIVE is 0 * test/ruby/test_fiber.rb (test_mark_fiber): new test [Bug #13875] [ruby-core:82681] This bug appears to be introduced with r59557. ("refactoring Fiber status") git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@59785 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'cont.c')
-rw-r--r--cont.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/cont.c b/cont.c
index f49ed2bde5..c89f7404f6 100644
--- a/cont.c
+++ b/cont.c
@@ -248,7 +248,7 @@ cont_mark(void *ptr)
const rb_thread_t *th = rb_thread_ptr(cont->saved_thread.self);
const rb_fiber_t *fib = (rb_fiber_t*)cont;
- if ((th->ec.fiber != fib) && FIBER_SUSPENDED_P(fib)) {
+ if ((th->ec.fiber != fib) && !FIBER_TERMINATED_P(fib)) {
rb_gc_mark_locations(cont->machine.stack,
cont->machine.stack + cont->machine.stack_size);
}