Hotfix for FS #347.
This is not meant to be a permanent solution, but should provide insight into why the issue happens. git-svn-id: http://mc-server.googlecode.com/svn/trunk@1347 0a769ca7-a7f5-676a-18bf-c427514a06d6
This commit is contained in:
parent
1406d80b2b
commit
47b9f6d941
@ -1599,6 +1599,11 @@ void cWorld::SetChunkData(
|
|||||||
m_Generator.GenerateBiomes(a_ChunkX, a_ChunkZ, BiomeMap);
|
m_Generator.GenerateBiomes(a_ChunkX, a_ChunkZ, BiomeMap);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
{
|
||||||
|
// _X: 2013_04_01: Hotfix for FS #347 - deadlock between the anvil loader thread and the tick thread
|
||||||
|
// By locking the entities here, we break one of the 3 conditions needed for the deadlock
|
||||||
|
cCSLock Lock(m_CSEntities);
|
||||||
|
|
||||||
m_ChunkMap->SetChunkData(
|
m_ChunkMap->SetChunkData(
|
||||||
a_ChunkX, a_ChunkY, a_ChunkZ,
|
a_ChunkX, a_ChunkY, a_ChunkZ,
|
||||||
a_BlockTypes, a_BlockMeta, a_BlockLight, a_BlockSkyLight,
|
a_BlockTypes, a_BlockMeta, a_BlockLight, a_BlockSkyLight,
|
||||||
@ -1606,6 +1611,7 @@ void cWorld::SetChunkData(
|
|||||||
a_Entities, a_BlockEntities,
|
a_Entities, a_BlockEntities,
|
||||||
a_MarkDirty
|
a_MarkDirty
|
||||||
);
|
);
|
||||||
|
}
|
||||||
|
|
||||||
// If a client is requesting this chunk, send it to them:
|
// If a client is requesting this chunk, send it to them:
|
||||||
if (m_ChunkMap->HasChunkAnyClients(a_ChunkX, a_ChunkY, a_ChunkZ))
|
if (m_ChunkMap->HasChunkAnyClients(a_ChunkX, a_ChunkY, a_ChunkZ))
|
||||||
|
Loading…
Reference in New Issue
Block a user