diff options
author | sapier <Sapier at GMX dot net> | 2014-01-06 12:45:42 +0100 |
---|---|---|
committer | sapier <Sapier at GMX dot net> | 2014-01-10 10:10:45 +0100 |
commit | 8b0b857eaaa50c6ec217a46c0577395c78ec04c7 (patch) | |
tree | b9fd5e1edb099aee1498b29a43702568a283aa34 /src/client.cpp | |
parent | 10fdbf737513e48bfcfb9e90fe243dcd989c0476 (diff) | |
download | minetest-8b0b857eaaa50c6ec217a46c0577395c78ec04c7.tar.gz minetest-8b0b857eaaa50c6ec217a46c0577395c78ec04c7.tar.bz2 minetest-8b0b857eaaa50c6ec217a46c0577395c78ec04c7.zip |
Make MutexQueue use jsemaphore for signaling
Diffstat (limited to 'src/client.cpp')
-rw-r--r-- | src/client.cpp | 18 |
1 files changed, 16 insertions, 2 deletions
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) { |