diff options
author | Perttu Ahola <celeron55@gmail.com> | 2011-10-14 12:39:25 +0300 |
---|---|---|
committer | Perttu Ahola <celeron55@gmail.com> | 2011-10-14 12:39:25 +0300 |
commit | 080002f8ed1af6d34cdc6f5abff0f51586ca831c (patch) | |
tree | 7871804bd919a0ca02b7e0c6d60d3d0427c57e21 | |
parent | 853a78681eea74103b5fd6294a2ef25e65a7f946 (diff) | |
download | minetest-080002f8ed1af6d34cdc6f5abff0f51586ca831c.tar.gz minetest-080002f8ed1af6d34cdc6f5abff0f51586ca831c.tar.bz2 minetest-080002f8ed1af6d34cdc6f5abff0f51586ca831c.zip |
Lock mutex when accessing m_env in Server::~Server
-rw-r--r-- | src/server.cpp | 28 |
1 files changed, 17 insertions, 11 deletions
diff --git a/src/server.cpp b/src/server.cpp index 73df81dde..5b9903f5a 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -1139,19 +1139,23 @@ Server::~Server() {} } } + + { + JMutexAutoLock envlock(m_env_mutex); - /* - Save players - */ - dstream<<"Server: Saving players"<<std::endl; - m_env.serializePlayers(m_mapsavedir); + /* + Save players + */ + dstream<<"Server: Saving players"<<std::endl; + m_env.serializePlayers(m_mapsavedir); - /* - Save environment metadata - */ - dstream<<"Server: Saving environment metadata"<<std::endl; - m_env.saveMeta(m_mapsavedir); - + /* + Save environment metadata + */ + dstream<<"Server: Saving environment metadata"<<std::endl; + m_env.saveMeta(m_mapsavedir); + } + /* Stop threads */ @@ -1201,6 +1205,8 @@ void Server::start(unsigned short port) void Server::stop() { DSTACK(__FUNCTION_NAME); + + dout_server<<"Server: Stopping and waiting threads"<<std::endl; // Stop threads (set run=false first so both start stopping) m_thread.setRun(false); |