Am 2017-10-13 um 09:46 schrieb Piotr Caban:
It looks like the function should be treating negative time differences in special way. Except of that it seems to be ignoring overflows. I think that following code is much easier to read. Is something like this working for you?
Your code looks more elegant than mine for sure, and I believe it should work. I'll double check it with WGC to be on the safe side.
Your patch works for my tests and WGC. You forgot to define NANOSEC_PER_SEC though.
I'd propose that you send your patch and I'll resubmit my tests with the LONGLONG constant fix. Does that work for you?
I don’t see why 128-bit operations should be needed here.
I'm not saying they are necessary, as your code obviously shows. It's just my guess of how Microsoft ended up with this behavior.