diff options
author | Koichi Sasada <ko1@atdot.net> | 2020-10-31 00:40:04 +0900 |
---|---|---|
committer | Koichi Sasada <ko1@atdot.net> | 2020-10-31 01:48:00 +0900 |
commit | fd089276999393a6f6bb2a0b614ac76ca6151ab2 (patch) | |
tree | 711b652e7051adc7ab23e150ce65cb0d8f4e2439 /class.c | |
parent | 66bf743b9309b479b6d5389e315ca54ea73aafae (diff) |
Ractor's "will" doesn't need copying.
`r = Ractor.new{ expr }` generates the block return value from `expr`
and we can get this value by `r.take`. Ractor.yield and Ractor#take
passing values by copying on default. However, the block return value
(we named it "will" in the code) is not referred from the Ractor
because the Ractor is already dead. So we can pass the reference
of "will" to another ractor without copying. We can apply same story
for the propagated exception.
Notes
Notes:
Merged: https://github.com/ruby/ruby/pull/3724
Diffstat (limited to 'class.c')
0 files changed, 0 insertions, 0 deletions