diff options
author | Nay <dnpd.dd@gmail.com> | 2013-09-11 11:50:18 -0700 |
---|---|---|
committer | Nay <dnpd.dd@gmail.com> | 2013-09-11 11:50:18 -0700 |
commit | baa159dbd4472a3cff2e4256fec60431878ae1f8 (patch) | |
tree | 81dba5007ef41f0506db6096d277d5ddf96146ff /src/server/shared/Logging/Log.cpp | |
parent | 77f90c1c67864305d532233266a4951f48f61683 (diff) | |
parent | 9578b5f87a4aa96e120b78f410ea90e141903dd7 (diff) |
Merge pull request #10736 from jackpoz/localtime_race_condition
Core/Thread: Fix race condition converting time values to local time
Diffstat (limited to 'src/server/shared/Logging/Log.cpp')
-rw-r--r-- | src/server/shared/Logging/Log.cpp | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/server/shared/Logging/Log.cpp b/src/server/shared/Logging/Log.cpp index be7aab9cf5e..e6400176155 100644 --- a/src/server/shared/Logging/Log.cpp +++ b/src/server/shared/Logging/Log.cpp @@ -295,7 +295,8 @@ void Log::write(LogMessage* msg) std::string Log::GetTimestampStr() { time_t t = time(NULL); - tm* aTm = localtime(&t); + tm aTm; + ACE_OS::localtime_r(&t, &aTm); // YYYY year // MM month (2 digits 01-12) // DD day (2 digits 01-31) @@ -303,7 +304,7 @@ std::string Log::GetTimestampStr() // MM minutes (2 digits 00-59) // SS seconds (2 digits 00-59) char buf[20]; - snprintf(buf, 20, "%04d-%02d-%02d_%02d-%02d-%02d", aTm->tm_year+1900, aTm->tm_mon+1, aTm->tm_mday, aTm->tm_hour, aTm->tm_min, aTm->tm_sec); + snprintf(buf, 20, "%04d-%02d-%02d_%02d-%02d-%02d", aTm.tm_year+1900, aTm.tm_mon+1, aTm.tm_mday, aTm.tm_hour, aTm.tm_min, aTm.tm_sec); return std::string(buf); } |