On Mon, Feb 23, 2009 at 2:31 PM, Dan <[email protected]> wrote:
>> 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.

Ah ... I didn't know that. I did know that the new value wasn't
visible outside the uncommitted transaction, but I thought other
transactions were aware that some other transaction was changing it.
Thanks for explaining that!

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

-- 
R. Mark Volkmann
Object Computing, Inc.

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to