Cygwin: implement extensible clock interface
- Drop hires_[nm]s clocks, rename hires.h to clock.h. - Implement clk_t class as an extensible clock class in new file clock.cc. - Introduce get_clock(clock_id) returning a pointer to the clk_t instance for clock_id. Provide the following methods along the lines of the former hires classes: void clk_t::nsecs (struct timespec *); ULONGLONG clk_t::nsecs (); LONGLONG clk_t::usecs (); LONGLONG clk_t::msecs (); void clk_t::resolution (struct timespec *); - Add CLOCK_REALTIME_COARSE, CLOCK_MONOTONIC_RAW, CLOCK_MONOTONIC_COARSE and CLOCK_BOOTTIME clocks. - Allow clock_nanosleep, pthread_condattr_setclock and timer_create to use all new clocks (both clocks should be usable with a small tweak, though). - Bump DLL major version to 2.12. Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
This commit is contained in:
@@ -82,8 +82,14 @@ strace::dll_info ()
|
||||
int
|
||||
strace::microseconds ()
|
||||
{
|
||||
static hires_ns now NO_COPY;
|
||||
return (int) now.usecs ();
|
||||
/* Need a local clock instance because this function is called before
|
||||
the global constructors of the inferior process have been called. */
|
||||
static clk_monotonic_t clock_monotonic;
|
||||
static LONGLONG process_start NO_COPY;
|
||||
|
||||
if (!process_start)
|
||||
process_start = clock_monotonic.usecs ();
|
||||
return (int) (clock_monotonic.usecs () - process_start);
|
||||
}
|
||||
|
||||
static int __stdcall
|
||||
|
Reference in New Issue
Block a user