
Anthony Williams wrote: [snip]
As far as I can gather, POSIX expects the latter. Windows only offers relative timeouts, so we get the former, though there's a potential race between calculating "now" vs changing the clock. If I had a reliable way to abort a wait if the clock changed.
For Windows: As you said yourself earlier, WM_TIMECHANGE is available. Create a hidden window and run the message loop in a worker thread to catch those msgs. This could presumably be implemented using some kind of lazy init to work transparently even for the DLL version of Boost.Thread. IIRC, WM_TIMECHANGE is broadcasted by the system on time changes since w2k (and strongly recommended for applications before that). Whether that is reliable enough would be up to you. / Johan