Previously Ractor.new { exit }.join would hang because SystemExit was special cased.
This commit updates this to take the same path as other exceptions, which wraps the exception in a Ractor::RemoteError and does not end up exiting the main Ractor. I don't know if that's what this should do, but I think it's a reasonable behaviour as calling exit() in a Ractor is odd.
in 'Ractor#join': thrown by remote Ractor. (Ractor::RemoteError) from -e:1:in '<main>' in 'Kernel#exit': exit (SystemExit) from -e:1:in 'block in <main>'
Related issues
Bug #21505: [Ractor] calling exit from non-main ractor will hang if main ractor waits on it
Fix rb_eSystemExit raised in Ractor
[Bug #21505]
Previously
Ractor.new { exit }.joinwould hang because SystemExit wasspecial cased.
This commit updates this to take the same path as other exceptions,
which wraps the exception in a Ractor::RemoteError and does not end up
exiting the main Ractor. I don't know if that's what this should do, but
I think it's a reasonable behaviour as calling exit() in a Ractor is
odd.