diff --git a/server/channelserver/handlers_quest.go b/server/channelserver/handlers_quest.go index a36c8116a..0739f1b07 100644 --- a/server/channelserver/handlers_quest.go +++ b/server/channelserver/handlers_quest.go @@ -238,8 +238,10 @@ func loadQuestFile(s *Session, questId int) []byte { } questBody.WriteBytes(newStrings.Data()) + s.server.questCacheLock.Lock() s.server.questCacheData[questId] = questBody.Data() s.server.questCacheTime[questId] = time.Now() + s.server.questCacheLock.Unlock() return questBody.Data() } diff --git a/server/channelserver/sys_channel_server.go b/server/channelserver/sys_channel_server.go index 32ec832c8..f62db7e34 100644 --- a/server/channelserver/sys_channel_server.go +++ b/server/channelserver/sys_channel_server.go @@ -75,6 +75,7 @@ type Server struct { raviente *Raviente + questCacheLock sync.RWMutex questCacheData map[int][]byte questCacheTime map[int]time.Time }