No, I have not done any further experimentation yet.
I too looked through kernel code and found that it appears that possibly all waiting processes/tasks are awakened when the system time is modified. I say possibly because there are some conditions on awakening the processes/tasks and I don't know whether they apply.
Also, even if the process is awakened, I don't know what the behavior of the process is after being awakened, i.e., does the system call in which it is waiting return immediately or might it go back to waiting.
In this case the changing of the clock a (I think) large time forward may cause the time limit to appear to have been exceeded, i.e. timed out. However, we appear to see this expiration when the clock is modified by NTP even when the modification is far less than the timeout value.
The return value in the struct timeval might shed some light on that.
Thanks!
|