diff options
Diffstat (limited to 'cpp/src/qpid/broker/BrokerQueue.h')
| -rw-r--r-- | cpp/src/qpid/broker/BrokerQueue.h | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/cpp/src/qpid/broker/BrokerQueue.h b/cpp/src/qpid/broker/BrokerQueue.h index 35aa954c1e..962c11d8ee 100644 --- a/cpp/src/qpid/broker/BrokerQueue.h +++ b/cpp/src/qpid/broker/BrokerQueue.h @@ -60,6 +60,12 @@ namespace qpid { typedef std::vector<Consumer*> Consumers; typedef std::deque<Message::shared_ptr> Messages; + struct DispatchFunctor { + Queue& queue; + DispatchFunctor(Queue& q) : queue(q) {} + void operator()() { queue.dispatch(); } + }; + const string name; const bool autodelete; MessageStore* const store; @@ -75,8 +81,8 @@ namespace qpid { std::auto_ptr<QueuePolicy> policy; QueueBindings bindings; boost::shared_ptr<Exchange> alternateExchange; - qpid::sys::Serializer serializer; - qpid::sys::Serializer::Task dispatchCallback; + qpid::sys::Serializer<DispatchFunctor> serializer; + DispatchFunctor dispatchCallback; void pop(); void push(Message::shared_ptr& msg); |
