aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Weather/Weather.cpp
diff options
context:
space:
mode:
authorNay <dnpd.dd@gmail.com>2013-09-11 11:50:18 -0700
committerNay <dnpd.dd@gmail.com>2013-09-11 11:50:18 -0700
commitbaa159dbd4472a3cff2e4256fec60431878ae1f8 (patch)
tree81dba5007ef41f0506db6096d277d5ddf96146ff /src/server/game/Weather/Weather.cpp
parent77f90c1c67864305d532233266a4951f48f61683 (diff)
parent9578b5f87a4aa96e120b78f410ea90e141903dd7 (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/game/Weather/Weather.cpp')
-rw-r--r--src/server/game/Weather/Weather.cpp5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/server/game/Weather/Weather.cpp b/src/server/game/Weather/Weather.cpp
index 38d64eedd5c..0457dc7e033 100644
--- a/src/server/game/Weather/Weather.cpp
+++ b/src/server/game/Weather/Weather.cpp
@@ -93,8 +93,9 @@ bool Weather::ReGenerate()
//78 days between January 1st and March 20nd; 365/4=91 days by season
// season source http://aa.usno.navy.mil/data/docs/EarthSeasons.html
time_t gtime = sWorld->GetGameTime();
- struct tm * ltime = localtime(&gtime);
- uint32 season = ((ltime->tm_yday - 78 + 365)/91)%4;
+ struct tm ltime;
+ ACE_OS::localtime_r(&gtime, &ltime);
+ uint32 season = ((ltime.tm_yday - 78 + 365)/91)%4;
static char const* seasonName[WEATHER_SEASONS] = { "spring", "summer", "fall", "winter" };