diff options
author | Samuel Williams <[email protected]> | 2022-12-01 23:00:33 +1300 |
---|---|---|
committer | GitHub <[email protected]> | 2022-12-01 23:00:33 +1300 |
commit | 0436f1e15a8e79ffef5ea412ac1312cbf9f063e6 (patch) | |
tree | 456611e5ae13d2c1312a61532ab7a79d642564b6 /enumerator.c | |
parent | 9869bd1d612b489df806cf95bcb56965a02424e0 (diff) |
Introduce `Fiber#storage` for inheritable fiber-scoped variables. (#6612)
Notes
Notes:
Merged-By: ioquatix <[email protected]>
Diffstat (limited to 'enumerator.c')
-rw-r--r-- | enumerator.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/enumerator.c b/enumerator.c index 4d2d73240e..a0c51b585c 100644 --- a/enumerator.c +++ b/enumerator.c @@ -766,7 +766,8 @@ next_init(VALUE obj, struct enumerator *e) { VALUE curr = rb_fiber_current(); e->dst = curr; - e->fib = rb_fiber_new(next_i, obj); + // We inherit the fiber storage by reference, not by copy, by specifying Qfalse here. + e->fib = rb_fiber_new_storage(next_i, obj, Qfalse); e->lookahead = Qundef; } |