From 9221c0c4e30258d111217d7d362014bbaf308388 Mon Sep 17 00:00:00 2001 From: Ted Ross Date: Thu, 12 Nov 2009 14:35:39 +0000 Subject: 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@835392 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/cpp/examples/qmf-agent/example.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'qpid/cpp/examples/qmf-agent/example.cpp') diff --git a/qpid/cpp/examples/qmf-agent/example.cpp b/qpid/cpp/examples/qmf-agent/example.cpp index a611c25ba3..5ab9c10c91 100644 --- a/qpid/cpp/examples/qmf-agent/example.cpp +++ b/qpid/cpp/examples/qmf-agent/example.cpp @@ -36,6 +36,8 @@ #include +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; } -- cgit v1.2.1