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

Reply via email to