summaryrefslogtreecommitdiff
path: root/cpp/src/Ice/Application.cpp
diff options
context:
space:
mode:
authorMichi Henning <michi@zeroc.com>2002-11-13 03:47:26 +0000
committerMichi Henning <michi@zeroc.com>2002-11-13 03:47:26 +0000
commit2a336f55877147d0c38e0692dfd19dcecdf16ae1 (patch)
tree8e242382641d78edea0c41bfe1c412aae93719f1 /cpp/src/Ice/Application.cpp
parentFixed botched changes for Windows. (diff)
downloadice-2a336f55877147d0c38e0692dfd19dcecdf16ae1.tar.bz2
ice-2a336f55877147d0c38e0692dfd19dcecdf16ae1.tar.xz
ice-2a336f55877147d0c38e0692dfd19dcecdf16ae1.zip
Added interrupted() method so we can test whether a program terminated due
to a signal.
Diffstat (limited to 'cpp/src/Ice/Application.cpp')
-rw-r--r--cpp/src/Ice/Application.cpp13
1 files changed, 13 insertions, 0 deletions
diff --git a/cpp/src/Ice/Application.cpp b/cpp/src/Ice/Application.cpp
index f87d16503be..78f3ed6ac95 100644
--- a/cpp/src/Ice/Application.cpp
+++ b/cpp/src/Ice/Application.cpp
@@ -20,6 +20,8 @@ using namespace Ice;
const char* Application::_appName = 0;
CommunicatorPtr Application::_communicator;
+bool Application::_interrupted = false;
+
#ifndef _WIN32
const int Application::signals[] = { SIGHUP, SIGINT, SIGTERM };
sigset_t Application::signalSet;
@@ -49,6 +51,7 @@ Ice::Application::main(int argc, char* argv[], const char* configFile)
return EXIT_FAILURE;
}
+ Application::_interrupted = false;
_appName = argv[0];
int status;
@@ -147,6 +150,8 @@ Ice::Application::communicator()
BOOL WINAPI
Ice::interruptHandler(DWORD)
{
+ Application::_interrupted = true;
+
//
// Don't use Application::communicator(), this is not signal-safe.
//
@@ -231,6 +236,8 @@ Ice::Application::releaseInterrupt()
void
Ice::interruptHandler(int)
{
+ Application::_interrupted = true;
+
//
// Don't use Application::communicator(), this is not signal-safe.
//
@@ -293,3 +300,9 @@ Ice::Application::releaseInterrupt()
}
#endif
+
+bool
+Ice::Application::interrupted()
+{
+ return Application::_interrupted;
+}