I use GetTickCount a lot to keep track of timeouts. On windows, it is guaranteed to be monotonic, so my usual
if GetTickCount-StartTime>Timeout then.. works fine (yes, even when the time wraps around, provided StartTime is defined as DWORD and Timeout is smaller than a DWORD, of course I could use GetTickCount64 but usually the 32bits version is enough). For unix the implementation uses fpgettimeofday but that's not monotonic, so it could break the above code. For linux a more accurate implementation could be function GetTickCount64: QWord; var tp: timespec; begin clock_gettime(CLOCK_MONOTONIC, @tp); Result := (Int64(tp.tv_sec) * 1000) + (tp.tv_nsec div 1000000); end; And I say linux because CLOCK_MONOTONIC is only defined there in fpc, though it should be available even in other systems: http://pubs.opengroup.org/onlinepubs/9699919799/functions/clock_getres.html Bye -- Luca Olivetti Wetron Automation Technology http://www.wetron.es Tel. +34 935883004 Fax +34 935883007 -- _______________________________________________ Lazarus mailing list Lazarus@lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus