- break
[...]
Personally, I favor option 2. I think there was some discussion about
this already. Please see the noisy "copying commitment and deadlock"
thread around March 24th and 25th. Here is a gist of what seemed as a
good solution at that time:
- To get out of the loop early, a callout server
sends a i-want-out message to the processor
- To let a callout server out of the loop,
the processor must send xaction-end message
to the server
- A callout server cannot get out of the loop
nicely until it receives a xaction-end message
The above scheme is simple and deadlock free. Note that it does not
rely on processor supporting copying of data; there is no copying
commitment involved. The scheme is efficient unless there are a lot of
unprocessed messages buffered between the processor and the server. To
increase efficiency, a more complex scheme with priority communication
channels would be required (to bypass a long chain of unprocessed
messages).
Would you like us to proceed with this i-want-out/xaction-end scheme?
Thank you for carrying this out again.
I now agree that this seems to be the best option.
Martin