2007-09-20 22:59:11 UTC
previous
next
#include <boost/bind.hpp>
#include <boost/thread.hpp>
#include <boost/format.hpp>
#include <iostream>
#include <signal.h>
int main(int argc, char *argv[]);
#include "database.h"
#include "network.h"
#include "log.h"
#include "scheduler.h"
#include "modules.h"
int main(int argc, char *argv[])
{
log::init();
log::info("---------------------------------------------------------------");
log::info("Starting server");
// Block a few signals here so new threads also block them
sigset_t set;
sigemptyset(&set);
sigaddset(&set, SIGHUP);
sigaddset(&set, SIGINT);
sigaddset(&set, SIGTERM);
pthread_sigmask(SIG_BLOCK, &set, 0);
Database db;
//Network::Manager::_instance.reset(new Network::Manager());
Network::Manager::create();
Scheduler::manager.reset(new Scheduler::Manager());
Modules::manager.reset(new Modules::Manager());
log::debug("Network manager started, this thread will wait for signals");
int sig;
sigwait(&set, &sig);
log::info(boost::str(boost::format("Received signal: %1%") % sig));
log::info("Shutting down");
Scheduler::manager.reset();
//Network::Manager::_instance.reset();
Network::Manager::destroy();
Modules::manager.reset();
log::close();
return 0;
}