Logger* server;
int main(int argc,char* argv[])
{
// catch signals to shutdown cleanly
signal(SIGINT,signalHandler);
signal(SIGTERM,signalHandler);
signal(SIGHUP,signalHandler);
CORBAContext::instance(argc,argv);
// set up thread pool
OB_EPQ* epq = 0;
long numThreads = 10;
thisCapsule->mtInitialize(epq,numThreads);
thisActivity->targetEPQ(epq);
// enter the event loop
server = new Logger();
CORBA_ULong timeout = 3000000;
server->run(timeout);
delete server;
thisCapsule->mtCleanup();
exit(0);
} // end server
void signalHandler(int /*signal*/)
{
CORBA_Environment env;
server->shutdown(env);
}
End of Listing