RFR 8098798: Thread.join(ms) on Linux still affected by changes to the time-of-day clock
Ivan Gerasimov
ivan.gerasimov at oracle.com
Wed Aug 29 21:18:19 UTC 2018
Hi Roger!
This is of course a corner case, but now if you call
thread.join(Long.MAX_VALUE, 1) you'll get
IllegalArgumentException("timeout value is negative");
And the same with sleep(long, int).
Before the fix, the same would happen with join(Long.MAX_VALUE, 500000),
which was also not quite expected.
Would it make sense to do `if (nanos > 0 && millis < Long.MAX_VALUE)`
just for extra accuracy?
With kind regards,
Ivan
On 8/29/18 1:06 PM, Roger Riggs wrote:
> Please review changes for:
>
> 8098798: Thread.join(ms) on Linux still affected by changes to the
> time-of-day clock
> Use System.nanoTime to compute any remaining delay
>
> 8210004: Thread.sleep(millis, nanos) timeout returns early
> Avoid an early return by rounding the milliseconds up if there
> are any nanoseconds as was done in Object.wait(ms, ns).
>
> (If its not appropriate to do the two reviews together, I can split
> them).
>
> Webrev:
> http://cr.openjdk.java.net/~rriggs/webrev-thread-early-8098798/
>
> Thanks, Roger
>
>
--
With kind regards,
Ivan Gerasimov
More information about the core-libs-dev
mailing list