summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/qpidd.cpp18
1 files changed, 15 insertions, 3 deletions
diff --git a/cpp/src/qpidd.cpp b/cpp/src/qpidd.cpp
index f240b45dd8..2a5862a4b9 100644
--- a/cpp/src/qpidd.cpp
+++ b/cpp/src/qpidd.cpp
@@ -120,9 +120,21 @@ struct BootstrapOptions : public qpid::Options {
shared_ptr<Broker> brokerPtr;
auto_ptr<QpiddOptions> options;
-void shutdownHandler(int signal){
- QPID_LOG(notice, "Shutting down on signal " << signal);
- brokerPtr->shutdown();
+void shutdownHandler(int /*signal*/){
+ // FIXME aconway 2008-02-07:
+ // https://bugzilla.redhat.com/show_bug.cgi?id=431928
+
+ // The following commented code is in no
+ // way async-signal safe and is causing sporadic hangs on
+ // shutdown. This handler should push a shutdown event into the
+ // epoll poller (making sure to use only async-safe functions!)
+ // and let a poller thread actually do the shutdown.
+
+ // QPID_LOG(notice, "Shutting down on signal " << signal);
+ // brokerPtr->shutdown();
+
+ // For now we just die on the signal, no cleanup.
+ exit(0);
}
struct QpiddDaemon : public Daemon {