----------------------------------------------------------- This is an automatically generated e-mail. To reply, visit: https://reviews.apache.org/r/9698/#review17802 -----------------------------------------------------------
I take it this is a pre-cursor to adding rebind, so that you will be able to take a write lock during rebind. Gordon makes a good point though, it would be good to benchmark RWLock vs. Mutex and see if it is worth using the RWLock instead of a plain Mutex. - Alan Conway On March 12, 2013, 3:35 p.m., Chug Rolke wrote: > > ----------------------------------------------------------- > 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. > > > 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 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 > >