void gt_timer_show_progress_va(GtTimer *t, FILE *fp, const char *desc, va_list ap) { #ifndef _WIN32 char buf[BUFSIZ]; struct timeval elapsed_tv, elapsed_user_tv, elapsed_sys_tv; gt_assert(t && desc); gettimeofday(&t->stop_tv, NULL); gt_xgetrusage(RUSAGE_SELF, &t->stop_ru); timeval_subtract(&elapsed_tv, &t->stop_tv, &t->start_tv); timeval_subtract(&elapsed_user_tv, &t->stop_ru.ru_utime, &t->start_ru.ru_utime); timeval_subtract(&elapsed_sys_tv, &t->stop_ru.ru_stime, &t->start_ru.ru_stime); gt_timer_print_progress_report(t, &elapsed_tv, &elapsed_user_tv, &elapsed_sys_tv, t->statedesc, fp); if (t->statedesc) gt_free(t->statedesc); (void) vsnprintf(buf, BUFSIZ, desc, ap); t->statedesc = gt_cstr_dup(buf); gettimeofday(&t->start_tv, NULL); gt_xgetrusage(RUSAGE_SELF, &t->start_ru); #else /* XXX */ fprintf(stderr, "gt_timer_show_progress_va() not implemented\n"); exit(EXIT_FAILURE); #endif }
void gt_timer_start(GtTimer *t) { gt_assert(t); gettimeofday(&t->gstart_tv, NULL); gettimeofday(&t->start_tv, NULL); gt_xgetrusage(RUSAGE_SELF, &t->start_ru); gt_xgetrusage(RUSAGE_SELF, &t->gstart_ru); t->state = TIMER_RUNNING; }
void gt_timer_start(GT_UNUSED GtTimer *t) { #ifndef _WIN32 gt_assert(t); gettimeofday(&t->gstart_tv, NULL); gettimeofday(&t->start_tv, NULL); gt_xgetrusage(RUSAGE_SELF, &t->start_ru); gt_xgetrusage(RUSAGE_SELF, &t->gstart_ru); t->state = TIMER_RUNNING; #else /* XXX */ fprintf(stderr, "gt_timer_start() not implemented\n"); exit(EXIT_FAILURE); #endif }
void gt_timer_stop(GtTimer *t) { gt_assert(t); if (t->state == TIMER_RUNNING) { gettimeofday(&t->stop_tv, NULL); gt_xgetrusage(RUSAGE_SELF, &t->stop_ru); t->state = TIMER_STOPPED; } }
void gt_timer_show_progress_va(GtTimer *t, FILE *fp, const char *desc, va_list ap) { char buf[BUFSIZ]; struct timeval elapsed_tv, elapsed_user_tv, elapsed_sys_tv; gt_assert(t && desc); gettimeofday(&t->stop_tv, NULL); gt_xgetrusage(RUSAGE_SELF, &t->stop_ru); timeval_subtract(&elapsed_tv, &t->stop_tv, &t->start_tv); timeval_subtract(&elapsed_user_tv, &t->stop_ru.ru_utime, &t->start_ru.ru_utime); timeval_subtract(&elapsed_sys_tv, &t->stop_ru.ru_stime, &t->start_ru.ru_stime); gt_timer_print_progress_report(t, &elapsed_tv, &elapsed_user_tv, &elapsed_sys_tv, t->statedesc, fp); if (t->statedesc) gt_free(t->statedesc); (void) vsnprintf(buf, BUFSIZ, desc, ap); t->statedesc = gt_cstr_dup(buf); gettimeofday(&t->start_tv, NULL); gt_xgetrusage(RUSAGE_SELF, &t->start_ru); }
void gt_timer_stop(GtTimer *t) { gt_assert(t); #ifndef _WIN32 if (t->state == TIMER_RUNNING) { gettimeofday(&t->stop_tv, NULL); gt_xgetrusage(RUSAGE_SELF, &t->stop_ru); t->state = TIMER_STOPPED; } #else /* XXX */ fprintf(stderr, "gt_timer_stop() not implemented\n"); exit(EXIT_FAILURE); #endif }