Let the server irc bot reconnect once every day.

This commit is contained in:
lotodore
2008-11-02 21:25:42 +00:00
parent eff1919831
commit 9943e34d4a
5 changed files with 55 additions and 6 deletions
+22
View File
@@ -32,6 +32,8 @@
#include <boost/bind.hpp>
#include <boost/algorithm/string/predicate.hpp>
#define SERVER_RESTART_IRC_BOT_INTERVAL_SEC 86400 // 1 day
using namespace std;
ServerManager::ServerManager(GuiInterface &gui, ConfigFile *config, AvatarManager &avatarManager)
@@ -172,6 +174,26 @@ ServerManager::RunAll()
for_each(m_acceptThreadPool.begin(), m_acceptThreadPool.end(), boost::mem_fn(&ServerAcceptThread::Run));
}
void
ServerManager::Process()
{
if (m_ircRestartTimer.elapsed().total_seconds() > SERVER_RESTART_IRC_BOT_INTERVAL_SEC)
{
if (m_ircThread)
{
m_ircThread->SignalTermination();
if (m_ircThread->Join(NET_ADMIN_IRC_TERMINATE_TIMEOUT_MSEC))
{
boost::shared_ptr<IrcThread> tmpIrcThread(new IrcThread(*m_ircThread));
tmpIrcThread->Run();
m_ircThread = tmpIrcThread;
}
}
m_ircRestartTimer.reset();
m_ircRestartTimer.start();
}
}
void
ServerManager::SignalTerminationAll()
{