On Mon, 19 Sep 2022 20:41:50 GMT, Chris Plummer <cjplum...@openjdk.org> wrote:

>> Serguei Spitsyn has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   fixed typo in VirtualThread.c
>
> src/hotspot/share/runtime/javaThread.cpp line 1174:
> 
>> 1172: #if INCLUDE_JVMTI
>> 1173:   // Suspending a JavaThread in VTMS transition or disabling VTMS 
>> transitions can cause deadlocks.
>> 1174:   assert(!is_in_non_tmp_VTMS_transition(), "no suspend allowed in VTMS 
>> transition");
> 
> IMHO, a non tmp VTMS transition should be considered a type of VTMS 
> transition, so the assert check here does not really match the assert text. 
> Also see my related comments below on naming and use of these flags and APIs.

Thanks. Accepted.

> src/hotspot/share/runtime/javaThread.hpp line 650:
> 
>> 648:   void set_is_in_VTMS_transition(bool val);
>> 649:   bool is_in_tmp_VTMS_transition() const         { return 
>> _is_in_tmp_VTMS_transition; }
>> 650:   void toggle_is_in_tmp_VTMS_transition()        { 
>> _is_in_tmp_VTMS_transition = !_is_in_tmp_VTMS_transition; };
> 
> The naming of the flags does not match up with the naming of the APIs, which 
> is confusing.  An API named  is_in_VTMS_transition() should return 
> _is_in_VTMS_transition. I think part of problem is that 
> _is_in_VTMS_transition is not a superset of _is_in_tmp_VTMS_transition. The 
> flags are never both set true, although both can be false. Maybe this should 
> be changed to make it an invariant that if _is_in_tmp_VTMS_transit is true, 
> then _is_in_tmp_VTMS_transition is true.

I agree, this naming is not good. However, I was reluctant to do required 
renaming because it can potentially impact many spots and make review harder. 
Let me think a little bit more on this.

-------------

PR: https://git.openjdk.org/jdk/pull/10321

Reply via email to