
Issue #21505 has been updated by jhawthorn (John Hawthorn). I opened https://github.com/ruby/ruby/pull/13838 which fixes this ``` ./miniruby -e 'Ractor.new { exit }.join' -e:1: warning: Ractor is experimental, and the behavior may change in future versions of Ruby! Also there are many implementation issues. -e:1:in 'Ractor#join': thrown by remote Ractor. (Ractor::RemoteError) from -e:1:in '<main>' -e:1:in 'Kernel#exit': exit (SystemExit) from -e:1:in 'block in <main>' ``` In this PR we end up wrapping `SystemExit` in a `Ractor::RemoteError` rather than exiting the program. I don't know if that's the most desirable behaviour (versus translating back to SystemExit), but it makes sense to me as calling `exit` in a Ractor is a bit strange. ---------------------------------------- Bug #21505: [Ractor] calling exit from non-main ractor will hang if main ractor waits on it https://bugs.ruby-lang.org/issues/21505#change-113977 * Author: luke-gru (Luke Gruber) * Status: Open * Assignee: ractor * Backport: 3.2: UNKNOWN, 3.3: UNKNOWN, 3.4: UNKNOWN ---------------------------------------- ```ruby r = Ractor.new do exit end r.join # hangs ``` Should `exit` be allowed in ractors? It would be easiest to disallow, as the code might be tricky if we allow it. -- https://bugs.ruby-lang.org/