summaryrefslogtreecommitdiff
path: root/cpp/demo/Ice/session/Client.cpp
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2008-03-06 16:33:31 +1000
committerMichi Henning <michi@zeroc.com>2008-03-06 16:33:31 +1000
commit2740c38d741b10018c66c97acaf67fa9cd9f0a87 (patch)
tree784657f6e99168e15b060f40e88c4a54f5c7e9e8 /cpp/demo/Ice/session/Client.cpp
parentAnother fix to bug 2395. gacutil can actually do what we need, it's just that... (diff)
parentSquashed commit of the following: (diff)
downloadice-2740c38d741b10018c66c97acaf67fa9cd9f0a87.tar.bz2
ice-2740c38d741b10018c66c97acaf67fa9cd9f0a87.tar.xz
ice-2740c38d741b10018c66c97acaf67fa9cd9f0a87.zip
Merge branch 'master' of ssh://cvs.zeroc.com/home/git/ice
Diffstat (limited to 'cpp/demo/Ice/session/Client.cpp')
-rwxr-xr-xcpp/demo/Ice/session/Client.cpp53
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);