If we successfully
completed, commit the changes and cleanup.
If there is a conflict, the transaction is aborted. Restore the modified locations to their original values, wait some time, and then try again
Transformation load/store
operations in original code. As long
as there are no conflicts, the transaction executes as usual.
For a transaction, keep track of the memory locations accessed.