From d9fc6b6933ad733d1b2a4d2bd91ecb3824970ea8 Mon Sep 17 00:00:00 2001 From: Alan Bateman Date: Thu, 24 Aug 2023 16:51:20 +0000 Subject: [PATCH] 8314759: VirtualThread.parkNanos timeout adjustment when pinned should be replaced Reviewed-by: aturbanov, shade, dfuchs --- src/java.base/share/classes/java/lang/VirtualThread.java | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/java.base/share/classes/java/lang/VirtualThread.java b/src/java.base/share/classes/java/lang/VirtualThread.java index 5d6965d3caa..37d092e2011 100644 --- a/src/java.base/share/classes/java/lang/VirtualThread.java +++ b/src/java.base/share/classes/java/lang/VirtualThread.java @@ -630,10 +630,8 @@ final class VirtualThread extends BaseVirtualThread { // park on carrier thread for remaining time when pinned if (!yielded) { - long deadline = startTime + nanos; - if (deadline < 0L) - deadline = Long.MAX_VALUE; - parkOnCarrierThread(true, deadline - System.nanoTime()); + long remainingNanos = nanos - (System.nanoTime() - startTime); + parkOnCarrierThread(true, remainingNanos); } } }