Issue #7570 has been updated by ko1 (Koichi Sasada).

Assignee set to ko1 (Koichi Sasada)
Target version set to 2.0.0

Thank you for your report.

Your patch seems good and passed test-all on my environment.
Could you commit it?

----------------------------------------
Bug #7570: rb_fatal() in Fiber don't terminate process
https://bugs.ruby-lang.org/issues/7570#change-34810

Author: nagachika (Tomoyuki Chikanaga)
Status: Open
Priority: Low
Assignee: ko1 (Koichi Sasada)
Category: core
Target version: 2.0.0
ruby -v: ruby 2.0.0dev (2012-12-16 trunk 38414) [x86_64-darwin10.8.0]


rb_fatal() (C function) should terminate whole script.

  Thread.start{
    rb_fatal() # a extension library method calling rb_fatal()
  }.resume
  p :ng  # => never reached here

But rb_fatal() inside Fiber could be ignored.

  Fiber.start{
    rb_fatal()
  }.resume
  p :ng    # => reached here!

I think it's because TAG_FATAL is ignored in rb_vm_make_jump_tag_but_local_jump().
I'll attach a patch with a testcase.





-- 
http://bugs.ruby-lang.org/