DUE TO SPAM, SIGN-UP IS DISABLED. Goto Selfserve wiki signup and request an account.
...
Further details of the change can be found here .
Alternate Approach
After a discussion with Rafi/Rob on the recent Python changes expending effort in refactoring the client is probably not worth the effort. If the client message delivery were re-written to mirror the approach taken in the Python codebase then it would be simplier and easier to reason about. As a result I have devised a much smaller, though slightly ugly approach that will address our immediate rollbac issues. The alternative approach can be found here .
Comment Responses
User | Comment | via | Response |
|---|---|---|---|
rhs | AMQSession.syncDispatchQueue is used in 0-10 for this | This will not work if the dispatcher is performing the rollback (Deadlock). | |
rhs | Agree the client is badly in need of some improvements in maintainability and readability, however in this particular case I don't think moving the rollback processing from one thread to another actually improves the situation significantly. | It is not so much moving from on thread to another but from moving from the AMQSession / Dispatcher objects to just the Dispatcher. | |
rhs | I suspect in order do this properly we really need to stop thinking in terms of code being associated with a given thread, and think instead about what locks we have, what data structures those locks protect, and which locks need to be held in order to execute a given piece of code. | The focus of this change was to consolodate the operations on the received messagse. I would like to see a clean interface where messages are passed in for for dispatching. The cleaning operations should then be full contained in that interface not in a couple of locations as it is currently. | |
rhs | Really we need to be able to articulate exactly what locks the client has, what data structure(s) each lock protects, and what order should be used to acquire multiple locks when necessary. | Agreed, documenting what we have and how it works would be very useful for this discussion. |