From 8b0b857eaaa50c6ec217a46c0577395c78ec04c7 Mon Sep 17 00:00:00 2001 From: sapier Date: Mon, 6 Jan 2014 12:45:42 +0100 Subject: Make MutexQueue use jsemaphore for signaling --- src/client.cpp | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) (limited to 'src/client.cpp') diff --git a/src/client.cpp b/src/client.cpp index b830bcdf3..721c413c0 100644 --- a/src/client.cpp +++ b/src/client.cpp @@ -286,6 +286,20 @@ Client::Client( } } +void Client::Stop() +{ + //request all client managed threads to stop + m_mesh_update_thread.Stop(); +} + +bool Client::isShutdown() +{ + + if (!m_mesh_update_thread.IsRunning()) return true; + + return false; +} + Client::~Client() { { @@ -296,7 +310,7 @@ Client::~Client() m_mesh_update_thread.Stop(); m_mesh_update_thread.Wait(); while(!m_mesh_update_thread.m_queue_out.empty()) { - MeshUpdateResult r = m_mesh_update_thread.m_queue_out.pop_front(); + MeshUpdateResult r = m_mesh_update_thread.m_queue_out.pop_frontNoEx(); delete r.mesh; } @@ -692,7 +706,7 @@ void Client::step(float dtime) while(!m_mesh_update_thread.m_queue_out.empty()) { num_processed_meshes++; - MeshUpdateResult r = m_mesh_update_thread.m_queue_out.pop_front(); + MeshUpdateResult r = m_mesh_update_thread.m_queue_out.pop_frontNoEx(); MapBlock *block = m_env.getMap().getBlockNoCreateNoEx(r.p); if(block) { -- cgit v1.2.3