diff --git a/cgminer.c b/cgminer.c index 8e921be4..c657c975 100644 --- a/cgminer.c +++ b/cgminer.c @@ -37,6 +37,8 @@ #ifndef WIN32 #include +#else +#include #endif #include #include @@ -6790,6 +6792,9 @@ static void clean_up(void) #endif cgtime(&total_tv_end); +#ifdef WIN32 + timeEndPeriod(1); +#endif #ifdef HAVE_CURSES disable_curses(); #endif @@ -7449,6 +7454,8 @@ int main(int argc, char *argv[]) sigaction(SIGINT, &handler, &inthandler); #ifndef WIN32 signal(SIGPIPE, SIG_IGN); +#else + timeBeginPeriod(1); #endif opt_kernel_path = alloca(PATH_MAX); strcpy(opt_kernel_path, CGMINER_PREFIX); diff --git a/util.c b/util.c index f555c6ed..f0b39c91 100644 --- a/util.c +++ b/util.c @@ -807,24 +807,10 @@ void thr_info_cancel(struct thr_info *thr) /* This is a cgminer gettimeofday wrapper. Since we always call gettimeofday * with tz set to NULL, and windows' default resolution is only 15ms, this * gives us higher resolution times on windows. */ -#ifndef WIN32 void cgtime(struct timeval *tv) { gettimeofday(tv, NULL); } -#else -static void __cgtime(struct timeval *tv) -{ - gettimeofday(tv, NULL); -} - -void cgtime(struct timeval *tv) -{ - timeBeginPeriod(1); - __cgtime(tv); - timeEndPeriod(1); -} -#endif void subtime(struct timeval *a, struct timeval *b) { @@ -938,8 +924,7 @@ void cgsleep_us_r(cgtimer_t *ts_start, int64_t us) #else void cgsleep_prepare_r(cgtimer_t *ts_start) { - timeBeginPeriod(1); - __cgtime(ts_start); + cgtime(ts_start); } static void ms_to_timeval(struct timeval *val, int ms) @@ -957,14 +942,12 @@ void cgsleep_ms_r(cgtimer_t *ts_start, int ms) ms_to_timeval(&tv_diff, ms); timeradd(ts_start, &tv_diff, &tv_end); - __cgtime(&now); + cgtime(&now); if (unlikely(time_more(&now, &tv_end))) - goto out; + return; timersub(&tv_end, &now, &tv_diff); timeval_to_spec(&ts_diff, &tv_diff); nanosleep(&ts_diff, NULL); -out: - timeEndPeriod(1); } void cgsleep_us_r(cgtimer_t *ts_start, int64_t us)