summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client/Demux.cpp
diff options
context:
space:
mode:
authorAlan Conway <aconway@apache.org>2008-06-12 19:19:22 +0000
committerAlan Conway <aconway@apache.org>2008-06-12 19:19:22 +0000
commitc3c98db893d6e127dc5e0037fb2c3548e8f90a5a (patch)
treee3d43bfd62f9423c951df3bb3ea8dc2ba4aa2de3 /cpp/src/qpid/client/Demux.cpp
parentcaecb76180dfe85da79064e9733a3ca79c55f141 (diff)
downloadqpid-python-c3c98db893d6e127dc5e0037fb2c3548e8f90a5a.tar.gz
Propagate error messages across the Demux between network & user threads.
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@667205 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'cpp/src/qpid/client/Demux.cpp')
-rw-r--r--cpp/src/qpid/client/Demux.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/cpp/src/qpid/client/Demux.cpp b/cpp/src/qpid/client/Demux.cpp
index cb9372cee7..b774214ae4 100644
--- a/cpp/src/qpid/client/Demux.cpp
+++ b/cpp/src/qpid/client/Demux.cpp
@@ -47,7 +47,7 @@ ScopedDivert::~ScopedDivert()
Demux::Demux() : defaultQueue(new Queue()) {}
-Demux::~Demux() { close(); }
+Demux::~Demux() { close(sys::ExceptionHolder(new ClosedException())); }
Demux::QueuePtr ScopedDivert::getQueue()
{
@@ -69,13 +69,13 @@ void Demux::handle(framing::FrameSet::shared_ptr frameset)
}
}
-void Demux::close()
+void Demux::close(const sys::ExceptionHolder& ex)
{
sys::Mutex::ScopedLock l(lock);
for (iterator i = records.begin(); i != records.end(); i++) {
- i->queue->close();
+ i->queue->close(ex);
}
- defaultQueue->close();
+ defaultQueue->close(ex);
}
void Demux::open()