summaryrefslogtreecommitdiff
path: root/qpid/cpp/rubygen/MethodBodyDefaultVisitor.rb
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2013-11-20 18:02:25 +0000
committerAlan Conway <aconway@apache.org>2013-11-20 18:02:25 +0000
commitd33073b26b692835e0f43d2e02f2224dd8f30d70 (patch)
treeb0fcea44a0061204e27310c6f1fcdd7806a36dbf /qpid/cpp/rubygen/MethodBodyDefaultVisitor.rb
parent25987555e19e40908e5fad21c4aadbc73c800ef8 (diff)
downloadqpid-python-d33073b26b692835e0f43d2e02f2224dd8f30d70.tar.gz
QPID-5366: qpid segfaults in qpid::ha::BrokerReplicator::disconnected
Fix for a race condition: previously, BrokerReplicator created a separate ConnectionObserver object to forward connection events to it. However the Observers locking is such that it is possible for an event to arrive *after* calling Observers::remove (Observers copies the pointers and delivers events outside its lock.) This meant that it was possible for a call to BrokerReplicator::disconnect to be made after the BrokerReplicator was deleted. The fix is to combine BrokerReplicator and BrokerReplicator::ConnectionObserver into a single object with one lifetime that will last until it is removed from both the ExchangeRegistry and the ConnectionObservers. git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1543893 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/cpp/rubygen/MethodBodyDefaultVisitor.rb')
0 files changed, 0 insertions, 0 deletions