diff options
author | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-09-08 23:51:14 +0000 |
---|---|---|
committer | normal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2017-09-08 23:51:14 +0000 |
commit | 01fdd48fedd43474fa285629831b001405f565b5 (patch) | |
tree | b047b20a2e723aa27b8ad9ffb043ecc0a15e3886 /cont.c | |
parent | 5804d24f51b3ac37458444e9df02aa142534f39c (diff) | |
download | ruby-01fdd48fedd43474fa285629831b001405f565b5.tar.gz |
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.c | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -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); } |