Just writing down what locks what..
The deadlock is between cSocketThread and ChunkSender
ChunkSender stack:
![[Image: Screenshot-2012-03-22_16.18.14.png]](http://dl.dropbox.com/u/27784874/ZScreen/2012-03/Screenshot-2012-03-22_16.18.14.png)
cSocketThread stack:
![[Image: Screenshot-2012-03-22_16.19.02.png]](http://dl.dropbox.com/u/27784874/ZScreen/2012-03/Screenshot-2012-03-22_16.19.02.png)
Would a dump work here as well?
Code:
cSocketThread
Waits for cChunkMap::m_CSLayers (owned by ChunkSender) in cChunkMap::RemoveClientFromChunks
Owns cClientHandle::m_CSChunkLists
ChunkSender
Waits for cClientHandle::m_CSChunkLists (owned by cSocketThread) in cClientHandle::Send
Owns cChunkMap::m_CSLayers
ServerTickThread
Waits for cChunkMap::m_CSLayers (owned by ChunkSender) in cChunkMap::Tick
The deadlock is between cSocketThread and ChunkSender
ChunkSender stack:
![[Image: Screenshot-2012-03-22_16.18.14.png]](http://dl.dropbox.com/u/27784874/ZScreen/2012-03/Screenshot-2012-03-22_16.18.14.png)
cSocketThread stack:
![[Image: Screenshot-2012-03-22_16.19.02.png]](http://dl.dropbox.com/u/27784874/ZScreen/2012-03/Screenshot-2012-03-22_16.19.02.png)
Would a dump work here as well?