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

Reply via email to