EVALUATION
On Solaris and Linux the low-level park code transforms a timeout into an absolute time for use with the platform specific timed-wait mechanism. Some platform mechanisms have limits to the lengths of time they can wait, partly due to the use of 32-bit signed values. If the requested timeout results in an overflow then the resulting time is in the past and the platform mechanism returns immediately reporting the ETIME status.
If a higher-level operation, like a Condition.await, sees the immediate return but finds neither the condition is satisfied nor the timeout elapsed, then it will re-park. The re-park again returns immediately and we get a busy-poll loop.
|