diff options
author | Ted Ross <tross@apache.org> | 2009-11-12 14:35:39 +0000 |
---|---|---|
committer | Ted Ross <tross@apache.org> | 2009-11-12 14:35:39 +0000 |
commit | 2cb5195f485b3d2e312c8cc9cf8c9dab4cd980ed (patch) | |
tree | be58056618c1e971fb5a573d97ad533084dd9424 /cpp/examples/qmf-agent/example.cpp | |
parent | 51e77c8bc7dc4d71422b421135ded1cb33bb5c55 (diff) | |
download | qpid-python-2cb5195f485b3d2e312c8cc9cf8c9dab4cd980ed.tar.gz |
QPID-2179 - example qmf-agent occasionally crashes on shutdown
Committed patch from Ken Giusti
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@835392 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/examples/qmf-agent/example.cpp')
-rw-r--r-- | cpp/examples/qmf-agent/example.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/cpp/examples/qmf-agent/example.cpp b/cpp/examples/qmf-agent/example.cpp index a611c25ba3..5ab9c10c91 100644 --- a/cpp/examples/qmf-agent/example.cpp +++ b/cpp/examples/qmf-agent/example.cpp @@ -36,6 +36,8 @@ #include <sstream> +static bool running = true; + using namespace std; using qpid::management::ManagementAgent; using qpid::management::ManagementObject; @@ -101,7 +103,7 @@ CoreClass::CoreClass(ManagementAgent* _agent, string _name) : name(_name), agent void CoreClass::doLoop() { // Periodically bump a counter to provide a changing statistical value - while (1) { + while (running) { qpid::sys::sleep(1); mgmtObject->inc_count(); mgmtObject->set_state("IN_LOOP"); @@ -155,8 +157,7 @@ ManagementAgent::Singleton* singleton; void shutdown(int) { - delete singleton; - exit(0); + running = false; } int main_int(int argc, char** argv) @@ -188,6 +189,9 @@ int main_int(int argc, char** argv) core1.doLoop(); + // done, cleanup and exit + delete singleton; + return 0; } |