diff options
author | Marc Laukien <marc@zeroc.com> | 2002-09-01 21:21:05 +0000 |
---|---|---|
committer | Marc Laukien <marc@zeroc.com> | 2002-09-01 21:21:05 +0000 |
commit | 31b064d4e4f55aadb9f03ab66ac59a94d82adfb6 (patch) | |
tree | c9e86b395f9c2c45e8205ae8ab99d3c5cbe6b838 /cpp/src/Ice/Application.cpp | |
parent | cleaning up empty identity handling (diff) | |
download | ice-31b064d4e4f55aadb9f03ab66ac59a94d82adfb6.tar.bz2 ice-31b064d4e4f55aadb9f03ab66ac59a94d82adfb6.tar.xz ice-31b064d4e4f55aadb9f03ab66ac59a94d82adfb6.zip |
IcePatch work
Diffstat (limited to 'cpp/src/Ice/Application.cpp')
-rw-r--r-- | cpp/src/Ice/Application.cpp | 35 |
1 files changed, 26 insertions, 9 deletions
diff --git a/cpp/src/Ice/Application.cpp b/cpp/src/Ice/Application.cpp index beb4e6eca01..d0480baa916 100644 --- a/cpp/src/Ice/Application.cpp +++ b/cpp/src/Ice/Application.cpp @@ -16,8 +16,9 @@ using namespace std; using namespace Ice; -const char* Application::_appName; +const char* Application::_appName = 0; CommunicatorPtr Application::_communicator; +bool Application::_shutdown = false; Ice::Application::Application() { @@ -101,11 +102,16 @@ Ice::Application::communicator() #ifdef _WIN32 -static BOOL WINAPI -interruptHandler(DWORD) +BOOL WINAPI +Ice::interruptHandler(DWORD) { - assert(Application::communicator()); - Application::communicator()->shutdown(); + Application::_shutdown = true; + + // + // Don't use Application::communicator(), this is not signal-safe. + // + assert(Application::_communicator); + Application::_communicator->shutdown(); return TRUE; } @@ -132,11 +138,16 @@ Ice::Application::defaultInterrupt() #else -static void -interruptHandler(int) +void +Ice::interruptHandler(int) { - assert(Application::communicator()); - Application::communicator()->shutdown(); + Application::_shutdown = true; + + // + // Don't use Application::communicator(), this is not signal-safe. + // + assert(Application::_communicator); + Application::_communicator->shutdown(); } void @@ -179,3 +190,9 @@ Ice::Application::defaultInterrupt() } #endif + +bool +Ice::Application::isShutdownFromInterrupt() +{ + return _shutdown; +} |