From: nicholas.evans@... Date: 2020-11-18T01:04:07+00:00 Subject: [ruby-core:100926] [Ruby master Feature#17331] Let Fiber#raise work with transferring fibers Issue #17331 has been updated by nevans (Nicholas Evans). We could also make this automatically determine whether the fiber is yielding or transferring and choose the appropriate fiber_switch approach. But transferring vs yielding makes a difference in where control is passed back to when the fiber exits. And this has a high likelihood of causing an immediate follow-up fiber switch (due to termination) back to--where??? return fiber??? last fiber in the root fiber resuming stack???--it feels like it makes at least as much sense to use an explicit arg here as it does to use different methods for resume and transfer. But I don't really mind making it implicit and automatic. :) ---------------------------------------- Feature #17331: Let Fiber#raise work with transferring fibers https://bugs.ruby-lang.org/issues/17331#change-88576 * Author: nevans (Nicholas Evans) * Status: Open * Priority: Normal ---------------------------------------- This seems like a feature that would be just as useful for transferring fibers as it is for yielding fibers. I'm using a kwarg, so this is not automatic; the caller must know how to handle the fiber. If you call a yielding fiber with `transfer: true` or a transferring fiber without `transfer: true`, a `FiberError` will be raised. ```ruby yielding_fiber.raise "message" transferring_fiber.raise "message", transfer: true ``` Implementation: https://github.com/ruby/ruby/pull/3783 -- https://bugs.ruby-lang.org/ Unsubscribe: <mailto:ruby-core-request@ruby-lang.org?subject=unsubscribe> <http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>