From: samuel@... Date: 2020-12-26T07:40:36+00:00 Subject: [ruby-core:101703] [Ruby master Bug#17369] Introduce non-blocking `Process.wait`, `Kernel.system` and related methods. Issue #17369 has been updated by ioquatix (Samuel Williams). We introduced experimental feature and implemented non-blocking hook for Ruby 3. More work is required here, but we didn't make it in time for Ruby 3.0 - so we marked it as experimental. We also need to implement `rb_f_system` in terms of `rb_process_status_wait`. Can someone else help with this? ---------------------------------------- Bug #17369: Introduce non-blocking `Process.wait`, `Kernel.system` and related methods. https://bugs.ruby-lang.org/issues/17369#change-89529 * Author: ioquatix (Samuel Williams) * Status: Assigned * Priority: Normal * Assignee: ioquatix (Samuel Williams) * Backport: 2.5: UNKNOWN, 2.6: UNKNOWN, 2.7: UNKNOWN ---------------------------------------- https://github.com/ruby/ruby/pull/3853 This PR introduces optional hooks to the scheduler interface for handling `Process.wait`, `Kernel.system` and other related methods (`waitpid`, `wait2`, etc). It funnels all methods through a new interface `Process::Status.wait` which is almost identical to `Process.wait` except for several key differences: - The return value is a single instance of `Process::Status`. - It does not set thread local `$?`. This is necessary for keeping the scheduler interface simple (and side effects are generally bad anyway). -- https://bugs.ruby-lang.org/ Unsubscribe: