Project

General

Profile

Actions

Bug #21451

open

Ractor.make_shareable(->{}, copy: true) raises unhelpful error

Added by tenderlovemaking (Aaron Patterson) 1 day ago. Updated 26 minutes ago.

Status:
Open
Assignee:
Target version:
-
[ruby-core:122600]

Description

> ruby -e'Ractor.make_shareable(->{}, copy:true)'
<internal:ractor>:828:in 'Ractor.make_shareable': allocator undefined for Proc (TypeError)
	from -e:1:in '<main>'

This error isn't very helpful and I think we can improve it. The exception happens when we call rb_obj_clone on the lambda.

I've made a patch to improve the error message so it's like this:

> ./miniruby -e'Ractor.make_shareable(->{}, copy:true)'
-e:1:in 'Ractor.make_shareable': cannot copy #<Proc:0x000000011f311a80 -e:1 (lambda)> (Ractor::IsolationError)
	from -e:1:in '<main>'
-e:1:in 'Ractor.make_shareable': allocator undefined for Proc (TypeError)
	from -e:1:in '<main>'

The patch is here: https://github.com/ruby/ruby/pull/13703

Actions

Also available in: Atom PDF

Like0
Like0Like0Like0