Commit bb1f8501 authored by unknown's avatar unknown

ut0ut.c Rewrote ut_print_timestamp with localtime_r and in Win GetLocalTime


innobase/ut/ut0ut.c:
  Rewrote ut_print_timestamp with localtime_r and in Win GetLocalTime
parent a13e9552
......@@ -57,25 +57,26 @@ ut_print_timestamp(
/*===============*/
FILE* file) /* in: file where to print */
{
struct tm* cal_tm_ptr;
struct tm cal_tm;
time_t tm;
#ifdef __WIN__
SYSTEMTIME cal_tm;
try_again:
time(&tm);
GetLocalTime(&cal_tm);
cal_tm_ptr = localtime(&tm);
memcpy(&cal_tm, cal_tm_ptr, sizeof(struct 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
/* In theory localtime may return a wrong result because its return
struct is not protected with a mutex */
struct tm cal_tm;
time_t tm;
if (difftime(tm, mktime(&cal_tm)) > 0.5
|| difftime(tm, mktime(&cal_tm)) < -0.5) {
time(&tm);
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
}
/*****************************************************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment