1
0

cWorld Threads: Seperate initialization and thread start.

Prevents nullptr dereferences before Start has been called.
This commit is contained in:
peterbell10
2017-09-22 17:16:47 +01:00
committed by Mattes D
parent 1537ebed6f
commit c54bf40ef9
6 changed files with 17 additions and 32 deletions

View File

@@ -196,6 +196,7 @@ cWorld::cWorld(
m_MapManager(this),
m_GeneratorCallbacks(*this),
m_ChunkSender(*this),
m_Lighting(*this),
m_TickThread(*this)
{
LOGD("cWorld::cWorld(\"%s\")", a_WorldName.c_str());
@@ -405,6 +406,7 @@ cWorld::cWorld(
m_SimulatorManager->RegisterSimulator(m_SandSimulator.get(), 1);
m_SimulatorManager->RegisterSimulator(m_FireSimulator.get(), 1);
m_Storage.Initialize(*this, m_StorageSchema, m_StorageCompressionFactor);
m_Generator.Initialize(m_GeneratorCallbacks, m_GeneratorCallbacks, IniFile);
m_MapManager.LoadMapData();
@@ -607,8 +609,8 @@ void cWorld::InitializeSpawn(void)
void cWorld::Start()
{
m_Lighting.Start(this);
m_Storage.Start(this, m_StorageSchema, m_StorageCompressionFactor);
m_Lighting.Start();
m_Storage.Start();
m_Generator.Start();
m_ChunkSender.Start();
m_TickThread.Start();