id,summary,reporter,owner,description,type,status,milestone,component,version,severity,resolution,keywords,cc 192,clock is not portable,magmaikh,beman_dawes,"{{{ On Win32 clock reports total elapsed time. On GNU/Linux clock reports consumed processor time by that process, and only reports time on the primary thread. Other threads always return 0, and time spent usleep'ing is not counted. The wording of the C/C++ standard is not without room for interpretation, and may even be interpreted to mean do whatever you can for clock. On Linux, and very possibly other *nix's, the function gettimeofday (in sys/time.h) should probably be used. code dump of my linux timer follows: template struct HPTimer { i64 Now_us() { timeval now; MKH_THROWONFAILURE(gettimeofday (&tvnow, 0)); return i64(now.tv_sec) * 1000000 + now.tv_usec; } T Snap() { timeval snap; //timezone zn; MKH_THROWONFAILURE(gettimeofday (&snap, 0)); i64 now = i64(snap.tv_sec) * 1000000 + snap.tv_usec; i64 then = i64(prev_snap.tv_sec) * 1000000 + prev_snap.tv_usec; prev_snap = snap; return T(now - then) / 1000000; } protected: timeval prev_snap; }; }}}",Bugs,closed,,timer,None,,Wont Fix,,