diff options
Diffstat (limited to 'vm.c')
-rw-r--r-- | vm.c | 8 |
1 files changed, 8 insertions, 0 deletions
@@ -995,6 +995,7 @@ collect_outer_variable_names(ID id, VALUE val, void *ptr) } VALUE rb_ractor_make_shareable(VALUE obj); +VALUE rb_ractor_ensure_shareable(VALUE obj, VALUE name); static const rb_env_t * env_copy(const VALUE *src_ep, VALUE read_only_variables) @@ -3181,6 +3182,12 @@ m_core_make_shareable(VALUE recv, VALUE obj) } static VALUE +m_core_ensure_shareable(VALUE recv, VALUE obj, VALUE name) +{ + return rb_ractor_ensure_shareable(obj, name); +} + +static VALUE core_hash_merge_kwd(VALUE hash, VALUE kw) { rb_hash_foreach(rb_to_hash_type(kw), kwmerge_i, hash); @@ -3345,6 +3352,7 @@ Init_VM(void) rb_define_method_id(klass, idProc, f_proc, 0); rb_define_method_id(klass, idLambda, f_lambda, 0); rb_define_method(klass, "make_shareable", m_core_make_shareable, 1); + rb_define_method(klass, "ensure_shareable", m_core_ensure_shareable, 2); rb_obj_freeze(fcore); RBASIC_CLEAR_CLASS(klass); rb_obj_freeze(klass); |