On Fri, 11 Mar 2022 07:52:16 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. > > Johannes Bechberger has updated the pull request incrementally with one > additional commit since the last revision: > > Remove two unnecessary lines I looked on the patch again from the perspective of a pure refactoring. It looks fine except we lost one of the asserts. src/hotspot/share/runtime/thread.cpp line 278: > 276: } > 277: > 278: MACOS_AARCH64_ONLY(DEBUG_ONLY(os::ThreadWX::init();)) This line meant the WX state is not initialized at this point (as a part of Thread constructor). Since there are a several places where the state is initialized and it was easy to miss one, I would like to preserve some assert that the state is initialized. ------------- Changes requested by akozlov (Committer). PR: https://git.openjdk.java.net/jdk/pull/7727