qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Chug Rolke" <cro...@redhat.com>
Subject Re: Review Request: C++ Broker normalize exchange locking and add RWlock for each
Date Tue, 12 Mar 2013 15:35:19 GMT

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

(Updated March 12, 2013, 3:35 p.m.)


Review request for qpid, Andrew Stitcher, Alan Conway, Gordon Sim, and Ted Ross.


Changes
-------

This diff shows the desired changes to Headers and Direct exchanges.
Topic, FanOut, and Xml exchanges are already OK.
This diff is unencumbered with changes beyond the scope of exchange locks.


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 (updated)
-----

  trunk/qpid/cpp/src/qpid/broker/DirectExchange.h 1455571 
  trunk/qpid/cpp/src/qpid/broker/DirectExchange.cpp 1455571 
  trunk/qpid/cpp/src/qpid/broker/HeadersExchange.h 1455571 
  trunk/qpid/cpp/src/qpid/broker/HeadersExchange.cpp 1455571 
  trunk/qpid/cpp/src/qpid/broker/TopicExchange.h 1455571 

Diff: https://reviews.apache.org/r/9698/diff/


Testing
-------

Passes normal self tests


Thanks,

Chug Rolke


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message