On Mon, 7 Mar 2022 11:29:08 GMT, Johannes Bechberger <d...@openjdk.java.net> wrote:
> The WXMode for the current thread (on MacOS aarch64) is currently stored in > the thread class which is unnecessary as the WXMode is bound to the current > OS thread, not the current instance of the thread class. > This pull request moves the storage of the current WXMode into a thread local > global variable in `os` and changes all related code. SafeFetch depended on > the existence of a thread object only because of the WXMode. This pull > request therefore removes the dependency, making SafeFetch usable in more > contexts. Regarding the names of the new methods: Most of the usages for ThreadWXEnable use it to set the WXMode to WXWrite. The suggested names are therefore a bit misleading (when used in this context). One could add another two methods: class os { ... // Platform does whatever needed to prepare for execution of generated code inside the current thread os::pre_current_thread_jit_code_gen() NOT_MACOS_AARCH64({}) // Platform does whatever needed to clean up after executing generated code inside the current thread os::post_current_thread_jit_code_gen() NOT_MACOS_AARCH64({}) But one would still have the problem of nesting (e.g. when code generating code calls code generating code). ------------- PR: https://git.openjdk.java.net/jdk/pull/7727