From: takashikkbn@... Date: 2018-06-06T15:55:45+00:00 Subject: [ruby-core:87429] [Ruby trunk Feature#14830] RubyVM::MJIT.pause / RubyVM::MJIT.resume Issue #14830 has been updated by k0kubun (Takashi Kokubun). I already created a patch for this https://github.com/ruby/ruby/pull/1882. Please check it out if you're interested in the details. ---------------------------------------- Feature #14830: RubyVM::MJIT.pause / RubyVM::MJIT.resume https://bugs.ruby-lang.org/issues/14830#change-72420 * Author: k0kubun (Takashi Kokubun) * Status: Open * Priority: Normal * Assignee: k0kubun (Takashi Kokubun) * Target version: 2.6 ---------------------------------------- This ticket is picking only MJIT.pause from https://bugs.ruby-lang.org/issues/14491 and adding MJIT.resume. # Purpose * When benchmarking JIT-ed code, I want to get rid of bad impact for performance that comes from ongoing JIT compilation, without waiting for all JIT compilation finish. * To make it easy to maintain Ruby's test cases that expect there is no child process with --jit. Using --jit makes them fail by existence of gcc or clang process, and I don't want to wait all JIT compilation finish to make it pass. # Proposals ~~~ ruby # Pause MJIT compilations but keep JIT-ed code available RubyVM::MJIT.pause # Start MJIT compilations again after the MJIT.pause RubyVM::MJIT.resume ~~~ # Details ## RubyVM::MJIT.pause * When MJIT is disabled (without --jit), it raises RuntimeError: "MJIT is not enabled". * When MJIT is enabled, * and when MJIT is paused, it does nothing and returns false. * and when MJIT is running, it blocks to wait for current JIT finish, pauses MJIT worker and returns true. ## RubyVM::MJIT.resume * When MJIT is disabled (without --jit), it raises RuntimeError: "MJIT is not enabled". * When MJIT is enabled, * and when MJIT is paused, it starts MJIT worker and returns true. It raises RuntimeError if it fails to resume (very rare). * and when MJIT is running, it does nothing and returns false. -- https://bugs.ruby-lang.org/ Unsubscribe: