On Thu, 26 Feb 2026 01:12:34 GMT, Sergey Bylokhov <[email protected]> wrote:
> CDesktopPeer.m creates dispatch semaphores via dispatch_semaphore_create in > both _lsOpenURI and _lsOpenFile but never releases them. Since the JDK is > compiled without ARC, each call to Desktop.open(), browse(), mail(), edit(), > or print() leaks around 80 bytes. > > The issue is similar to > [JDK-8376233](https://bugs.openjdk.org/browse/JDK-8376233) > > The fix adds dispatch_release(semaphore) after dispatch_semaphore_wait in > both functions, paired with dispatch_retain before the async block to prevent > use-after-free on the timeout path. src/java.desktop/macosx/native/libawt_lwawt/awt/CDesktopPeer.m line 82: > 80: } > 81: dispatch_semaphore_signal(semaphore); > 82: dispatch_release(semaphore); You have a **_dispatch_release(semaphore)_** after dispatch_semaphore_wait(), would that be sufficient to release the semaphore or do we need to call it here as well ? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/29927#discussion_r2941534137
