[#111712] [Ruby master Feature#19322] Support spawning "private" child processes — "kjtsanaktsidis (KJ Tsanaktsidis) via ruby-core" <ruby-core@...>
SXNzdWUgIzE5MzIyIGhhcyBiZWVuIHJlcG9ydGVkIGJ5IGtqdHNhbmFrdHNpZGlzIChLSiBUc2Fu
14 messages
2023/01/07
[ruby-core:112033] [Ruby master Bug#19374] Issue with Ractor.make_shareable with curried procs
From:
"luke-gru (Luke Gruber) via ruby-core" <ruby-core@...>
Date:
2023-01-25 13:25:18 UTC
List:
ruby-core #112033
Issue #19374 has been updated by luke-gru (Luke Gruber).
This issue is fixed by https://github.com/ruby/ruby/pull/7182. I will add a test to that PR for this.
----------------------------------------
Bug #19374: Issue with Ractor.make_shareable with curried procs
https://bugs.ruby-lang.org/issues/19374#change-101467
* Author: luke-gru (Luke Gruber)
* Status: Open
* Priority: Normal
* Backport: 2.7: UNKNOWN, 3.0: UNKNOWN, 3.1: UNKNOWN, 3.2: UNKNOWN
----------------------------------------
This works, but shouldn't:
```ruby
class Worker
def start(&blk)
blk = blk.curry # bug in ruby allows sharing of non-shareable proc
Ractor.make_shareable(blk)
@ractor = Ractor.new(blk) do |b|
main = b.call
p "from ractor: #{main}"
end
end
def work
@ractor.take
end
end
worker = Worker.new
a = self # unshareable main object
p "from main: #{a}"
worker.start { a }
worker.work
```
The curried proc has a reference to the original proc and it's not checked for shareability.
--
https://bugs.ruby-lang.org/
______________________________________________
ruby-core mailing list -- ruby-core@ml.ruby-lang.org
To unsubscribe send an email to ruby-core-leave@ml.ruby-lang.org
ruby-core info -- https://ml.ruby-lang.org/mailman3/postorius/lists/ruby-core.ml.ruby-lang.org/