On Tue, 10 Jun 2025 03:18:25 GMT, Anass Baya <ab...@openjdk.org> wrote:

> Yes, we can do that. I had the idea to use it so that UnlinkObjects() would 
> be invoked by the EDT, which would eliminate the race condition.

Looks like the UnlinkObjects and _GetScreenImOn is already  executed under the 
same lock:
 - WComponentPeer.dispose->AwtObject::_Dispose()->Lock on 
SyncCS->WM_AWT_DISPOSEPDATA->awt_Component.cpp.dispose()->UnlinkObjects()
 - WWindowPeer.getScreenImOn()->SyncCall()->Lock on 
SyncCS->AwtWindow._GetScreenImOn()

I think the only thing you should do is to replace the usage of JNI_GET_PDATA 
by the JNI_CHECK_PEER_GOTO and add a label "ret" at the end so default value of 
"result" will be returned.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/25619#discussion_r2137095842

Reply via email to