asqueaker at gmail.com
Fri Aug 10 01:02:38 UTC 2007
> Ok, registering a user will not be a very frequent operation, but I can
> think of a scenario in which between
> performing a #where: and actually adding the new user, another user has
> managed to register with the same
> login and commit the changes to the DB. Is there a way to make the
> #where: followed by #add: execute
> as a single atomic operation? or should I find a way to implement a
> synchronization mechanism (maybe based on
> locking, if this is possible in maven)?
If you use a standard Smalltalk collection, you'll get a commit
conflict. Since MagmaCollections are reduced-conflict, you'll need to
do something extra. For example, you could "reserve" the login by
adding it to a Smalltalk Set in a pre-commit. If successful, add it
to the MagmaSet and remove it from the reserve-Set in a post-commit.
There are probably other ways too.
> Best regards,
> Magma mailing list
> Magma at lists.squeakfoundation.org
More information about the Magma