Bug #5526

SEGV: ./ruby -rfiber -ve'f=Fiber.new{f.resume};f.transfer'

Added by naruse (Yui NARUSE) 7 months ago. Updated 7 months ago.

[ruby-dev:44742]
Status:Closed Start date:10/31/2011
Priority:Normal Due date:
Assignee:ko1 (Koichi Sasada) % Done:

100%

Category:YARV
Target version:-
ruby -v:ruby -v: ruby 2.0.0dev (2011-10-31 trunk 33581) [x86_64-freebsd8.2]

Description

FreeBSD 9 にて、./ruby -rfiber -ve'f=Fiber.new{f.resume};f.transfer' で SEGV します。 他のプラットフォームでも dead fiber call 例外なのはおかしくて、 double resume 例外になるべきでしょう。

Associated revisions

Revision 33684
Added by ko1 (Koichi Sasada) 7 months ago

* cont.c (rb_fiber_m_transfer, rb_fiber_resume): prohibit using "resume" after "transfer" method are used. You should not mix "resume" fiber and "transfer" fiber. [Bug #5526] * NEWS: add information about this change.

History

Updated by ko1 (Koichi Sasada) 7 months ago

  • Status changed from Assigned to Closed
  • % Done changed from 0 to 100
This issue was solved with changeset r33684. Yui, thank you for reporting this issue. Your contribution to Ruby is greatly appreciated. May Ruby be with you. ---------- * cont.c (rb_fiber_m_transfer, rb_fiber_resume): prohibit using "resume" after "transfer" method are used. You should not mix "resume" fiber and "transfer" fiber. [Bug #5526] * NEWS: add information about this change.

Also available in: Atom PDF