> > If I understand correctly, when there is an attempt to modify a Ref > that has been modified in another thread since the current transaction > began then the current transaction will retry immediately. Isn't it > true that it has no chance of completing until the transaction that > changed that Ref either commits or rolls back? If that is true, > wouldn't it make sense to make the retry wait until that other > transaction is finished? Maybe the point of retrying immediately is > that it can at least get through some of its work (the part before it > tries to change the Ref in question) before it has to check on that > other transaction again. >
Until there is a commit, no one but the transaction knows that those refs are meant to hold new values. When your transaction notices something is wrong and retries, the other transaction will *always* be finished. Which of course doesn't mean another transaction might not prevent it to finish again. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---