diff options
Diffstat (limited to 'cpp/demo/Ice/session/Client.cpp')
-rwxr-xr-x | cpp/demo/Ice/session/Client.cpp | 53 |
1 files changed, 10 insertions, 43 deletions
diff --git a/cpp/demo/Ice/session/Client.cpp b/cpp/demo/Ice/session/Client.cpp index 7d68813082a..ea11f4a2091 100755 --- a/cpp/demo/Ice/session/Client.cpp +++ b/cpp/demo/Ice/session/Client.cpp @@ -77,8 +77,8 @@ class SessionClient : public Ice::Application { public: + SessionClient(); virtual int run(int, char*[]); - virtual void interruptCallback(int); private: @@ -101,6 +101,15 @@ main(int argc, char* argv[]) return app.main(argc, argv, "config.client"); } +SessionClient::SessionClient() : + // + // Since this is an interactive demo we don't want any signal + // handling. + // + Application(Ice::NoSignalHandling) +{ +} + int SessionClient::run(int argc, char* argv[]) { @@ -110,12 +119,6 @@ SessionClient::run(int argc, char* argv[]) return EXIT_FAILURE; } - // - // Since this is an interactive demo we want the custom interrupt - // callback to be called when the process is interrupted. - // - callbackOnInterrupt(); - string name; cout << "Please enter your name ==> "; cin >> name; @@ -226,42 +229,6 @@ SessionClient::run(int argc, char* argv[]) } void -SessionClient::interruptCallback(int sig) -{ - // - // Workaround for older Linux platforms where SIGHUP is received - // when the process has a controlling terminal (such as under - // expect). - // - if(sig == SIGHUP) - { - return; - } - - // - // Terminate the refresh thread, destroy the session and then - // destroy the communicator, followed by an exit. We have to call - // exit because main may be blocked in a cin >> s call which - // cannot be interrupted portably. - // - cleanup(true); - - try - { - communicator()->destroy(); - } - catch(const IceUtil::Exception& ex) - { - cerr << appName() << ": " << ex << endl; - } - catch(...) - { - cerr << appName() << ": unknown exception" << endl; - } - exit(EXIT_SUCCESS); -} - -void SessionClient::cleanup(bool destroy) { IceUtil::Mutex::Lock sync(_mutex); |