]> git.lizzy.rs Git - minetest.git/commitdiff
Server::step throw is never catched. Replace it with an errorstream + assert
authorLoic Blot <loic.blot@unix-experience.fr>
Mon, 16 Mar 2015 19:25:35 +0000 (20:25 +0100)
committerLoic Blot <loic.blot@unix-experience.fr>
Mon, 16 Mar 2015 19:25:35 +0000 (20:25 +0100)
This throw can be trigger by LuaError exception or ConnectionBindFailed exception in the following functions:
* EmergeThread::Thread()
* ScriptApiEnv::environment_Step()
* ScriptApiEnv::player_event()
* ServerThread::Thread()

src/server.cpp

index 35405851fa85260240b44fe41f0de61c4a98de7f..4e955e40a410b8044959cdd73ef0021aee37d069 100644 (file)
@@ -479,10 +479,13 @@ void Server::step(float dtime)
                JMutexAutoLock lock(m_step_dtime_mutex);
                m_step_dtime += dtime;
        }
-       // Throw if fatal error occurred in thread
+       // Assert if fatal error occurred in thread
        std::string async_err = m_async_fatal_error.get();
-       if(async_err != ""){
-               throw ServerError(async_err);
+       if(async_err != "") {
+               errorstream << "UNRECOVERABLE error occurred. Stopping server. "
+                               << "Please fix the following error:" << std::endl
+                               << async_err << std::endl;
+               assert(false);
        }
 }