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:
@@ -159,7 +159,7 @@ select (int maxfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
|
||||
int ret = 0;
|
||||
|
||||
/* Record the current time for later use. */
|
||||
LONGLONG start_time = gtod.usecs ();
|
||||
LONGLONG start_time = get_clock (CLOCK_REALTIME)->usecs ();
|
||||
|
||||
select_stuff sel;
|
||||
sel.return_on_signal = 0;
|
||||
@@ -210,7 +210,7 @@ select (int maxfds, fd_set *readfds, fd_set *writefds, fd_set *exceptfds,
|
||||
if (us != -1LL && wait_state == select_stuff::select_set_zero)
|
||||
{
|
||||
select_printf ("recalculating us");
|
||||
LONGLONG now = gtod.usecs ();
|
||||
LONGLONG now = get_clock (CLOCK_REALTIME)->usecs ();
|
||||
if (now >= (start_time + us))
|
||||
{
|
||||
select_printf ("timed out after verification");
|
||||
|
Reference in New Issue
Block a user