Archive / / / main.cpp
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; }