-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://reviews.apache.org/r/9698/#review17688
-----------------------------------------------------------



trunk/qpid/cpp/src/qpid/broker/DirectExchange.cpp
<https://reviews.apache.org/r/9698/#comment37564>

    This isn't safe as the bindings map is accessed with no lock held.


- Gordon Sim


On March 8, 2013, 7:42 p.m., Chug Rolke wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://reviews.apache.org/r/9698/
> -----------------------------------------------------------
> 
> (Updated March 8, 2013, 7:42 p.m.)
> 
> 
> Review request for qpid, Andrew Stitcher, Alan Conway, Gordon Sim, and Ted 
> Ross.
> 
> 
> Description
> -------
> 
> * Move Topic exchange RWlock up into the parent exchange class and call it 
> 'bindingLock'.
> 
> * In Topic exchange take RWlock out of the derived class and use the parent's 
> lock.
> * In Direct and Headers exchanges change the semantics of the current lock to 
> use the Topic exchange pattern.
> * In FanOut exchange add locks at the same places as in the other exchanges 
> except only use Rlock. FanOut receives the locking it needs from the 
> CopyOnWriteArray and does not need anything else. By adding only Rlocks 
> threads will never block in the normal case. However, the Rlocks are the 
> hooks that the new application will need to freeze the exchange when that app 
> takes out the Wlock.
> 
> 
> This addresses bug QPID-4616.
>     https://issues.apache.org/jira/browse/QPID-4616
> 
> 
> Diffs
> -----
> 
>   trunk/qpid/cpp/src/qpid/broker/DirectExchange.h 1454111 
>   trunk/qpid/cpp/src/qpid/broker/DirectExchange.cpp 1454111 
>   trunk/qpid/cpp/src/qpid/broker/Exchange.h 1454111 
>   trunk/qpid/cpp/src/qpid/broker/FanOutExchange.h 1454111 
>   trunk/qpid/cpp/src/qpid/broker/FanOutExchange.cpp 1454111 
>   trunk/qpid/cpp/src/qpid/broker/HeadersExchange.h 1454111 
>   trunk/qpid/cpp/src/qpid/broker/HeadersExchange.cpp 1454111 
>   trunk/qpid/cpp/src/qpid/broker/Link.cpp 1454111 
>   trunk/qpid/cpp/src/qpid/broker/TopicExchange.h 1454111 
>   trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp 1454111 
>   trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.h 1454111 
>   trunk/qpid/cpp/src/qpid/ha/BrokerReplicator.cpp 1454111 
>   trunk/qpid/cpp/src/qpid/ha/QueueReplicator.h 1454111 
>   trunk/qpid/cpp/src/qpid/ha/QueueReplicator.cpp 1454111 
>   trunk/qpid/cpp/src/qpid/sys/CopyOnWriteArray.h 1454111 
>   trunk/qpid/cpp/src/qpid/xml/XmlExchange.h 1454111 
>   trunk/qpid/cpp/src/qpid/xml/XmlExchange.cpp 1454111 
> 
> Diff: https://reviews.apache.org/r/9698/diff/
> 
> 
> Testing
> -------
> 
> Passes normal self tests
> 
> 
> Thanks,
> 
> Chug Rolke
> 
>

Reply via email to