$ java -XX:StartFlightRecording=...,jdk.VirtualThreadPinned#enabled=true,threshold=0ms NativePinningDemo java.version=25.0.4.1 jdk.tracePinnedThreads=null sleepMillis=200 done $ jfr print --events jdk.VirtualThreadPinned --stack-depth 10 target/native-pin.jfr jdk.VirtualThreadPinned { startTime = 12:02:49.269 (2026-09-30) duration = 200 ms blockingOperation = "LockSupport.park" pinnedReason = "Native or VM frame on stack" carrierThread = "ForkJoinPool-1-worker-1" (javaThreadId = 28) eventThread = "" (javaThreadId = 27, virtual) stackTrace = [ java.lang.VirtualThread.parkOnCarrierThread(boolean, long) line: 833 java.lang.VirtualThread.parkNanos(long) line: 801 java.lang.VirtualThread.sleepNanos(long) line: 983 java.lang.Thread.sleepNanos(long) line: 507 java.lang.Thread.sleep(long) line: 540 com.ankurm.vtpinning.NativePinningDemo.sleepCallback() line: 30 com.ankurm.vtpinning.NativePinningDemo.blockingNativeCall() java.lang.VirtualThread.run(Runnable) line: 460 jdk.internal.vm.Continuation.enterSpecial(Continuation, boolean, boolean) ] }