summaryrefslogtreecommitdiff
path: root/cpp/demo/Ice/session/Client.cpp
diff options
context:
space:
mode:
authorMatthew Newhook <matthew@zeroc.com>2008-03-06 14:26:07 +0800
committerMatthew Newhook <matthew@zeroc.com>2008-03-06 14:26:07 +0800
commitbc6cdac7eda5e31c8fab6e891a7dc2078a7d22c6 (patch)
treedc10cb41cd1280cf115c6bf5a1302481a969e15d /cpp/demo/Ice/session/Client.cpp
parentFix to fix for 2395. Backed out Dwayne's previous change because we both work... (diff)
downloadice-bc6cdac7eda5e31c8fab6e891a7dc2078a7d22c6.tar.bz2
ice-bc6cdac7eda5e31c8fab6e891a7dc2078a7d22c6.tar.xz
ice-bc6cdac7eda5e31c8fab6e891a7dc2078a7d22c6.zip
Squashed commit of the following:
commit c2f83d9a3e0e1f97e76f33d7992ef8e3e2994d91 Author: Matthew Newhook <matthew@zeroc.com> Date: Thu Mar 6 14:22:52 2008 +0800 Cleanup some IceGrid configuration files. commit 4e33903c9ae238b9e317fc3f1f3e281c816374dd Author: Matthew Newhook <matthew@zeroc.com> Date: Thu Mar 6 14:17:10 2008 +0800 remove ttl setting. commit c418b308ff7cc8e8a4296819938b88dfedc16a97 Author: Matthew Newhook <matthew@zeroc.com> Date: Thu Mar 6 14:16:32 2008 +0800 remove useless PopulateEmptyIndices config. commit da70d3936f921aa2c92bd2db7b1fcddb4467a9bd Author: Matthew Newhook <matthew@zeroc.com> Date: Thu Mar 6 13:59:51 2008 +0800 - Removed interrupt handlers for interactive C++ demos. - Lots of cleanups to demos.
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);