Subject: Re: [boost] [interprocess] Getting boot-up time is unreliable on Windows
From: Ion GaztaÃ±aga (igaztanaga_at_[hidden])
Date: 2016-12-30 16:31:11
On 22/12/2016 10:01, Thomas Dahms wrote:
> Dear developers, dear Ion,
> We are experiencing issues on Windows where boost::interprocess relies
> on a certain event in the system event log to get the system's boot-up
> time. This has proven to be unreliable, because that event is not always
> present in the log. In that case, initialization of boost::interprocess
> Several bug reports exist for that issue, e.g. [1, 2].
> Report  contains a proposed fix to use GetTickCount64() and there is
> an open PR with an alternative fix to fall back to WMI mechanisms . I
> understand that the fix  would need some polishing, because
> GetTickCount64() is not available in pre-Vista.
> Nevertheless, both proposed fixes have been uncommented and unconsidered
> for a while now. Is there any chance that the maintainers could look
> into this?
Thanks for the ping. I don't think GetTickCount64 is very reliable, as
other methods also have problems with time correction, hibernation, fast
In  one the last bootup log is lost new processes won't be able to
communicate with others. The same happens with 
there are some instructions to give up on kernel persistence and define
the directory at compile time or run-time. This is the best workaround
I've trying to find a solution with no luck. I tried:
in modern Windows systems but hybrid shutdown (default since Windows 8)
does not seem to update it as kernel is suspended. Searching for a
unique bootup id in windows that does not suffer when hibernating or
correcting the RTC is really complicated.
Any suggestion welcomed. Best,
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk