[前][次][番号順一覧][スレッド一覧]

ruby-changes:67139

From: Takashi <ko1@a...>
Date: Fri, 13 Aug 2021 15:15:49 +0900 (JST)
Subject: [ruby-changes:67139] b64f81c817 (master): Pause an MJIT worker when JIT is cancelled

https://git.ruby-lang.org/ruby.git/commit/?id=b64f81c817

From b64f81c81729bbc248d19af01cafde88eb60fdc7 Mon Sep 17 00:00:00 2001
From: Takashi Kokubun <takashikkbn@g...>
Date: Thu, 12 Aug 2021 23:15:34 -0700
Subject: Pause an MJIT worker when JIT is cancelled

---
 NEWS.md | 2 ++
 mjit.c  | 3 +++
 2 files changed, 5 insertions(+)

diff --git a/NEWS.md b/NEWS.md
index 85f49d4..6b78cec 100644
--- a/NEWS.md
+++ b/NEWS.md
@@ -179,6 +179,8 @@ Excluding feature bug fixes. https://github.com/ruby/ruby/blob/trunk/NEWS.md#L179
 * `--jit-verbose` and `--jit-warning` output "JIT cancel" when JIT-ed
   code is disabled because TracePoint or GC.compact is used.
 
+* Pause an MJIT worker when JIT-ed code gets disabled.
+
 * `RubyVM::MJIT` is renamed to `RubyVM::JIT`. [[Feature #17490]]
 
 ## Static analysis
diff --git a/mjit.c b/mjit.c
index 57f2847..1f90ac0 100644
--- a/mjit.c
+++ b/mjit.c
@@ -91,6 +91,9 @@ mjit_cancel_all(const char *reason) https://github.com/ruby/ruby/blob/trunk/mjit.c#L91
     if (mjit_opts.warnings || mjit_opts.verbose) {
         fprintf(stderr, "JIT cancel: Disabled JIT-ed code because %s\n", reason);
     }
+
+    // Currently we never re-enable JIT calls. Thus we don't need to run JIT anymore.
+    mjit_pause(false);
 }
 
 // Deal with ISeq movement from compactor
-- 
cgit v1.1


--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]