Server::step throw is never catched in minetestserver

Replace it with an errorstream + assert for server

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()
This commit is contained in:
Loic Blot 2015-03-17 09:13:12 +01:00
parent 814e55597d
commit 7685969274
1 changed files with 10 additions and 2 deletions

View File

@ -481,8 +481,16 @@ void Server::step(float dtime)
}
// Throw 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 != "") {
if (m_simple_singleplayer_mode) {
throw ServerError(async_err);
}
else {
errorstream << "UNRECOVERABLE error occurred. Stopping server. "
<< "Please fix the following error:" << std::endl
<< async_err << std::endl;
FATAL_ERROR(async_err.c_str());
}
}
}