From: shyouhei@... Date: 2020-11-12T02:24:23+00:00 Subject: [ruby-core:100810] [Ruby master Feature#17322] Deprecate `Random::DEFAULT` and introduce `Random.default()` method to provide Ractor-supported default random generator Issue #17322 has been updated by shyouhei (Shyouhei Urabe). ko1 (Koichi Sasada) wrote in #note-2: > > Why not introduce general-purpose per-ractor variables first, instead of magical method that interacts with the crrent ractor behind-the-scene. > > Do you mean new syntax or method? Both :) But I understand that new syntax needs time (or maybe it's matz who needs time). A method would be a good starting point. Maybe Ractor#[] (like Thread#[]) ? ---------------------------------------- Feature #17322: Deprecate `Random::DEFAULT` and introduce `Random.default()` method to provide Ractor-supported default random generator https://bugs.ruby-lang.org/issues/17322#change-88451 * Author: ko1 (Koichi Sasada) * Status: Open * Priority: Normal ---------------------------------------- `Random::DEFAULT` a default random generator used by `rand`, `srand`, `Array#shuffle` without a given random generator, and so on. Random generators are not thread-safe, so they are not ractor safe, and they are not shareable. So a program refer to `Random::DEFAULT` on non-main ractor, it causes an error. To provide per-ractor default random generator, this ticket propose the `Random.default()` method which returns per-ractor random generator. `Random::DEFAULT` is a result of `Random.default()` on main-ractor and it should be deprecated, or at least it should not be used on multi-ractor supporting apps and libraries. -- https://bugs.ruby-lang.org/ Unsubscribe: