RFR: 8314759: VirtualThread.parkNanos timeout adjustment when pinned should be replaced
Daniel Fuchs
dfuchs at openjdk.org
Thu Aug 24 11:58:27 UTC 2023
On Wed, 23 Aug 2023 16:41:23 GMT, Alan Bateman <alanb at openjdk.org> wrote:
> If yielding fails due to the pinning then VirtualThread.parkNanos parks on the carrier thread with the remaining time. The calculation of the remaining time needs to be replaced so that it obviously uses the difference between the start and end time in the calculation. The current code isn't correct for cases where System.nanoTimes return a negative value or when parking for durations close to Long.MAX_VALUE (292 years). The change isn't really testable so there aren't any test changes included.
Although... what happens if parkOnCarrierThread is called with a negative value (as that could happen here)?
-------------
PR Comment: https://git.openjdk.org/jdk/pull/15405#issuecomment-1691537547
More information about the core-libs-dev
mailing list