
On Fri, Jun 11, 2010 at 3:34 PM, Luke Palmer
Say, using System.Time.getClockTime.
Luke
On Thu, Jun 10, 2010 at 11:31 PM, Luke Palmer
wrote: On Thu, Jun 10, 2010 at 11:50 AM, Andrew Coppin
wrote: Control.Concurrent provides the threadDelay function, which allows you to make the current thread sleep until T=now+X. However, I can't find any way of making the current thread sleep until T=X. In other words, I want to specify an absolute wakeup time, not a relative one.
Modulo a small epsilon between the two actions, can't you just get the current time and subtract it from the target time? threadDelay is allowed to delay for too long anyway, so doing it this way does not lose you any correctness.
Luke
This is a slightly different issue, but isn't there a potential problem with threadDelay? I noticed that internally threadDelay uses gettimeofday() as the absolute time source (on linux at least). Isn't there potential problem with this since wall-clock time isn't guaranteed to be monotonic increasing? On linux, I'd have thought the "right" thing to do would be to use clock_gettime(CLOCK_MONOTONIC) although that is probably not very portable. -- David