Possibly fixed the extremely rare PeerNotFound loop bug.

See explanation in http://2pktfkt.de/irc/minetest-delta/2011-08-22.html
This commit is contained in:
Perttu Ahola 2011-08-22 21:27:11 +03:00
parent 7776d6228e
commit a99450ab72
1 changed files with 14 additions and 14 deletions

View File

@ -1252,6 +1252,20 @@ void Server::AsyncRunStep()
m_uptime.set(m_uptime.get() + dtime);
}
{
// Process connection's timeouts
JMutexAutoLock lock2(m_con_mutex);
ScopeProfiler sp(&g_profiler, "Server: connection timeout processing");
m_con.RunTimeouts(dtime);
}
{
// This has to be called so that the client list gets synced
// with the peer list of the connection
ScopeProfiler sp(&g_profiler, "Server: peer change handling");
handlePeerChanges();
}
/*
Update m_time_of_day and overall game time
*/
@ -1294,20 +1308,6 @@ void Server::AsyncRunStep()
}
}
{
// Process connection's timeouts
JMutexAutoLock lock2(m_con_mutex);
ScopeProfiler sp(&g_profiler, "Server: connection timeout processing");
m_con.RunTimeouts(dtime);
}
{
// This has to be called so that the client list gets synced
// with the peer list of the connection
ScopeProfiler sp(&g_profiler, "Server: peer change handling");
handlePeerChanges();
}
{
JMutexAutoLock lock(m_env_mutex);
// Step environment