summaryrefslogtreecommitdiff
path: root/innobase/ut
diff options
context:
space:
mode:
authorunknown <heikki@donna.mysql.fi>2001-05-24 22:59:32 +0300
committerunknown <heikki@donna.mysql.fi>2001-05-24 22:59:32 +0300
commitcf5233e47c8219f8e2f17b85f02110efc396fd90 (patch)
treed12ea616a8230d164b6a4571dada572b09b714c4 /innobase/ut
parentb6098186662faaef749577b027d49c928a80fa2e (diff)
downloadmariadb-git-cf5233e47c8219f8e2f17b85f02110efc396fd90.tar.gz
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
Diffstat (limited to 'innobase/ut')
-rw-r--r--innobase/ut/ut0ut.c30
1 files 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;
- 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
}
/*****************************************************************