>
> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to