Actions
Bug #19374
openIssue with Ractor.make_shareable with curried procs
Description
This works, but shouldn't:
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.
Updated by luke-gru (Luke Gruber) 5 months ago
This issue is fixed by https://github.com/ruby/ruby/pull/7182. I will add a test to that PR for this.
Updated by hsbt (Hiroshi SHIBATA) 4 months ago
- Status changed from Open to Assigned
- Assignee set to ko1 (Koichi Sasada)
Actions
Like0
Like0Like0