From: eregontp@... Date: 2020-04-24T09:05:14+00:00 Subject: [ruby-core:98052] [Ruby master Feature#8215] Support accessing Fiber-locals and backtraces for a Fiber Issue #8215 has been updated by Eregon (Benoit Daloze). To make it clearer about "clean API": if we have Fiber#[] and Thread#[] then Thread#[] is just deceptive and doesn't do anything different. OTOH, with Fiber[:foo] and Thread[:foo] we can actually have the intuitive semantics. ---------------------------------------- Feature #8215: Support accessing Fiber-locals and backtraces for a Fiber https://bugs.ruby-lang.org/issues/8215#change-85280 * Author: halorgium (Tim Carey-Smith) * Status: Assigned * Priority: Normal * Assignee: ioquatix (Samuel Williams) ---------------------------------------- =begin As part of debugging celluloid, I have been wanting to diagnose where the Fibers are running and their various locals. I would expect the following to work. Thread.current[:key] = "outside" fiber = Fiber.new do Thread.current[:key] = "inside" Fiber.yield end fiber.resume fiber[:key] == "inside" # true fiber.backtrace # ... I also wonder whether (({Fiber#[]})) should be implemented, so (({Fiber.current[:key]})) is possible. For reference, here is the issue on the rubinius issue tracker: ((<"github/rubinius/rubinius/2200"|URL:https://github.com/rubinius/rubinius/issues/2200>)) =end ---Files-------------------------------- 0001-cont.c-fiber-local-accessors.patch (2.94 KB) -- https://bugs.ruby-lang.org/ Unsubscribe: