diff options
author | Alan Conway <aconway@apache.org> | 2008-02-07 21:06:01 +0000 |
---|---|---|
committer | Alan Conway <aconway@apache.org> | 2008-02-07 21:06:01 +0000 |
commit | cbd253b15b5ff540c2766cb52e67e28b58b57364 (patch) | |
tree | c4e315f45763691307ee81f88f0450e049fe75ae /cpp/src | |
parent | e5119518c2770b58a7742b73b13380e8a768ddbb (diff) | |
download | qpid-python-cbd253b15b5ff540c2766cb52e67e28b58b57364.tar.gz |
Removed signal-unsafe code from shutdown handler.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@619636 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src')
-rw-r--r-- | cpp/src/qpidd.cpp | 18 |
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 { |