From 2cb5195f485b3d2e312c8cc9cf8c9dab4cd980ed 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/qpid@835392 13f79535-47bb-0310-9956-ffa450edef68 --- cpp/examples/qmf-agent/example.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) (limited to 'cpp') 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 +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