On Tue, 4 Apr 2023 05:54:09 GMT, David Holmes <dhol...@openjdk.org> wrote:

>> Roman Kennke has updated the pull request incrementally with one additional 
>> commit since the last revision:
>> 
>>   Fix typo
>
> src/hotspot/cpu/x86/macroAssembler_x86.cpp line 9739:
> 
>> 9737:   get_thread(thread);
>> 9738: #endif
>> 9739:   subl(Address(thread, JavaThread::lock_stack_top_offset()), oopSize);
> 
> Is this code used for monitorexit or only returning from synchronized 
> methods? If used for monitorexit there is no requirement that the monitor 
> being unlocked was the last monitor locked. Balanced locking only requires 
> the locks and unlocks are matched, not that they are perfectly nested ie. 
> this is valid in bytecode:
> 
> monitorenter A
> monitorenter B
> monitorexit A
> monitorExit B

That is done one layer up in InterpreterMacroAssembler::unlock_object.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/10907#discussion_r1156895293

Reply via email to