summaryrefslogtreecommitdiff
path: root/cpp/src/qpid/client/Channel.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'cpp/src/qpid/client/Channel.cpp')
-rw-r--r--cpp/src/qpid/client/Channel.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/cpp/src/qpid/client/Channel.cpp b/cpp/src/qpid/client/Channel.cpp
index 8b7b7e1118..fbb2e0c6f8 100644
--- a/cpp/src/qpid/client/Channel.cpp
+++ b/cpp/src/qpid/client/Channel.cpp
@@ -187,13 +187,14 @@ bool Channel::get(Message& msg, const Queue& _queue, AckMode ackMode) {
status.sync();
session.messageCancel(tag);
- if (incoming.empty()) {
- return false;
- } else {
- msg.populate(*(incoming.pop()));
+ FrameSet::shared_ptr p;
+ if (incoming.tryPop(p)) {
+ msg.populate(*p);
if (ackMode == AUTO_ACK) msg.acknowledge(session, false, true);
return true;
}
+ else
+ return false;
}
void Channel::publish(Message& msg, const Exchange& exchange,
@@ -263,7 +264,7 @@ void Channel::run() {
QPID_LOG(warning, "Dropping unsupported message type: " << content->getMethod());
}
}
- } catch (const QueueClosed&) {}
+ } catch (const sys::QueueClosed&) {}
}
}}