A Ractor is a Ruby 3 mechanism for concurrency, where the basic difference to threads is that everything is isolated, except the things that you explicitly want to share.
To make this work, code that runs in a Ractor must conform to certain limitations:
- no
@@class_variables (ruby-dbus: Message#@@serial)
- no
@instance_variables of Modules/Classes (ruby-dbus: DBus#@logger)
ENV is not shareable yet (https://bugs.ruby-lang.org/issues/17676), several uses in ruby-dbus for the session bus
- (and so on)
It appears fixable but not trivial.
A Ractor is a Ruby 3 mechanism for concurrency, where the basic difference to threads is that everything is isolated, except the things that you explicitly want to share.
To make this work, code that runs in a Ractor must conform to certain limitations:
@@class_variables(ruby-dbus:Message#@@serial)@instance_variablesof Modules/Classes (ruby-dbus:DBus#@logger)ENVis not shareable yet (https://bugs.ruby-lang.org/issues/17676), several uses in ruby-dbus for the session busIt appears fixable but not trivial.