From 8af5e14fd8056408bc46698b7186655ec8e60062 Mon Sep 17 00:00:00 2001 From: Carl Worth Date: Thu, 5 Oct 2006 15:07:52 -0700 Subject: [PATCH] perf: Do backend synchronization in cairo_perf_timer_start as well as cairo_perf_timer_stop --- perf/cairo-perf-posix.c | 20 +++++++++++--------- perf/cairo-perf-win32.c | 12 +++++++----- 2 files changed, 18 insertions(+), 14 deletions(-) diff --git a/perf/cairo-perf-posix.c b/perf/cairo-perf-posix.c index 952ec4503..9a30c3257 100644 --- a/perf/cairo-perf-posix.c +++ b/perf/cairo-perf-posix.c @@ -121,15 +121,6 @@ typedef struct _cairo_perf_timer static cairo_perf_timer_t timer; -void -cairo_perf_timer_start (void) { -#ifdef OIL_STAMP - timer.start = OIL_STAMP (); -#else - gettimeofday (&timer.tv_start, NULL); -#endif -} - static cairo_perf_timer_finalize_t cairo_perf_timer_finalize = NULL; static void *cairo_perf_timer_finalize_closure = NULL; void @@ -140,6 +131,17 @@ cairo_perf_timer_set_finalize (cairo_perf_timer_finalize_t finalize, cairo_perf_timer_finalize_closure = closure; } +void +cairo_perf_timer_start (void) { + if (cairo_perf_timer_finalize) + cairo_perf_timer_finalize (cairo_perf_timer_finalize_closure); +#ifdef OIL_STAMP + timer.start = OIL_STAMP (); +#else + gettimeofday (&timer.tv_start, NULL); +#endif +} + void cairo_perf_timer_stop (void) { if (cairo_perf_timer_finalize) diff --git a/perf/cairo-perf-win32.c b/perf/cairo-perf-win32.c index 157d1b20f..a50f73417 100644 --- a/perf/cairo-perf-win32.c +++ b/perf/cairo-perf-win32.c @@ -42,11 +42,6 @@ typedef struct _cairo_perf_timer static cairo_perf_timer_t timer; -void -cairo_perf_timer_start (void) { - QueryPerformanceCounter(&timer.start); -} - static cairo_perf_timer_finalize_t cairo_perf_timer_finalize = NULL; static void *cairo_perf_timer_finalize_closure = NULL; void @@ -57,6 +52,13 @@ cairo_perf_timer_set_finalize (cairo_perf_timer_finalize_t finalize, cairo_perf_timer_finalize_closure = closure; } +void +cairo_perf_timer_start (void) { + if (cairo_perf_timer_finalize) + cairo_perf_timer_finalize (cairo_perf_timer_finalize_closure); + QueryPerformanceCounter(&timer.start); +} + void cairo_perf_timer_stop (void) { if (cairo_perf_timer_finalize)