diff options
Diffstat (limited to 'cpp/demo/Ice/minimal/Server.cpp')
-rw-r--r-- | cpp/demo/Ice/minimal/Server.cpp | 15 |
1 files changed, 14 insertions, 1 deletions
diff --git a/cpp/demo/Ice/minimal/Server.cpp b/cpp/demo/Ice/minimal/Server.cpp index 6b2e4874689..e7ff72db23e 100644 --- a/cpp/demo/Ice/minimal/Server.cpp +++ b/cpp/demo/Ice/minimal/Server.cpp @@ -7,16 +7,29 @@ // // ********************************************************************** +#include <IceUtil/IceUtil.h> #include <HelloI.h> #include <Ice/Ice.h> using namespace std; +static Ice::CommunicatorPtr communicator; + +static void +onCtrlC(int) +{ + if(communicator) + { + communicator->shutdown(); + } +} + int main(int argc, char* argv[]) { int status = EXIT_SUCCESS; - Ice::CommunicatorPtr communicator; + + IceUtil::CtrlCHandler ctrCHandler(onCtrlC); try { |