From 0703dba10da45c58d6abd9ed976ac17c14d26eed Mon Sep 17 00:00:00 2001 From: "heikki@donna.mysql.fi" <> Date: Thu, 24 May 2001 22:59:32 +0300 Subject: [PATCH] ut0ut.c Rewrote ut_print_timestamp with localtime_r and in Win GetLocalTime --- innobase/ut/ut0ut.c | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/innobase/ut/ut0ut.c b/innobase/ut/ut0ut.c index cae0c3819f3..07ee3d2b6fe 100644 --- a/innobase/ut/ut0ut.c +++ b/innobase/ut/ut0ut.c @@ -57,25 +57,26 @@ ut_print_timestamp( /*===============*/ FILE* file) /* in: file where to print */ { - struct tm* cal_tm_ptr; +#ifdef __WIN__ + SYSTEMTIME cal_tm; + + GetLocalTime(&cal_tm); + + fprintf(file,"%02d%02d%02d %2d:%02d:%02d", + (int)cal_tm.wYear % 100, + (int)cal_tm.wMonth, + (int)cal_tm.wDay, + (int)cal_tm.wHour, + (int)cal_tm.wMinute, + (int)cal_tm.wSecond); +#else + struct tm cal_tm; time_t tm; - try_again: time(&tm); - cal_tm_ptr = localtime(&tm); - - memcpy(&cal_tm, cal_tm_ptr, sizeof(struct tm)); - - /* In theory localtime may return a wrong result because its return - struct is not protected with a mutex */ - - if (difftime(tm, mktime(&cal_tm)) > 0.5 - || difftime(tm, mktime(&cal_tm)) < -0.5) { - - goto try_again; - } + localtime_r(&tm, &cal_tm); fprintf(file,"%02d%02d%02d %2d:%02d:%02d", cal_tm.tm_year % 100, @@ -84,6 +85,7 @@ ut_print_timestamp( cal_tm.tm_hour, cal_tm.tm_min, cal_tm.tm_sec); +#endif } /*****************************************************************