On Tue, 16 Dec 2025 03:34:47 GMT, Leonid Mesnik <[email protected]> wrote:

> The JvmtiTagMap::flush_object_free_events() method might be called from 
> different threads.
> The thread waits using lock until other thread posting events. The locking 
> thread is in vm state doesn't allowing safepoints. While other thread posting 
> events might request safepoints.
> 
> The fix is to block thread to allow safepoints while waiting on the lock.

src/hotspot/share/prims/jvmtiTagMap.cpp line 1208:

> 1206:     {
> 1207:       // If another thread is posting events, let it finish.
> 1208:       // This another thread might have safepoints during event 
> callbacks.

The comment does not read correctly.

src/hotspot/share/prims/jvmtiTagMap.cpp line 1210:

> 1208:       // This another thread might have safepoints during event 
> callbacks.
> 1209:       ThreadBlockInVM tbivm(JavaThread::current());
> 1210:       MonitorLocker ml(lock(), Mutex::_no_safepoint_check_flag);

Why not just remove the "no safepoint check" from the MonitorLocker?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28839#discussion_r2621667991
PR Review Comment: https://git.openjdk.org/jdk/pull/28839#discussion_r2621668730

Reply via email to