Stopping the ChunkSender upon server stop

git-svn-id: http://mc-server.googlecode.com/svn/trunk@401 0a769ca7-a7f5-676a-18bf-c427514a06d6
master
madmaxoft@gmail.com 2012-03-11 22:29:15 +00:00
parent e06c2001ba
commit cb2de47247
3 changed files with 15 additions and 2 deletions

View File

@ -30,8 +30,7 @@ cChunkSender::cChunkSender(void) :
cChunkSender::~cChunkSender()
{
m_ShouldTerminate = true;
m_evtQueue.Set();
Stop();
}
@ -48,6 +47,17 @@ bool cChunkSender::Start(cWorld * a_World)
void cChunkSender::Stop(void)
{
m_ShouldTerminate = true;
m_evtQueue.Set();
Wait();
}
void cChunkSender::ChunkReady(int a_ChunkX, int a_ChunkY, int a_ChunkZ)
{
// This is probably never gonna be called twice for the same chunk, and if it is, we don't mind, so we don't check

View File

@ -51,6 +51,8 @@ public:
bool Start(cWorld * a_World);
void Stop(void);
/// Notifies that a chunk has become ready and it should be sent to all its clients
void ChunkReady(int a_ChunkX, int a_ChunkY, int a_ChunkZ);

View File

@ -164,6 +164,7 @@ cWorld::~cWorld()
delete m_RedstoneSimulator;
m_Generator.Stop();
m_ChunkSender.Stop();
UnloadUnusedChunks();