Patent ID: 7685583

Claim:
A method in a computer system, the method comprising: defining a plurality of transactionable locations, wherein individual ones of the transactionable locations encode respective values and are owned by no more than one transaction at any given point in a multithreaded computation; for a particular non-blocking multi-target transaction of the multithreaded computation targeting two or more of the plurality of transactionable locations, attempting to acquire ownership of each of the transactionable locations targeted thereby, wherein the ownership acquiring wrests ownership from another non-blocking transaction that owns the targeted transactionable location without the other non-blocking transaction releasing ownership; and once ownership of each of the targeted transactionable locations has been acquired, attempting to commit the particular non-blocking multi-target transaction using a single-target synchronization primitive to ensure that, at the commit, the particular non-blocking multi-target transaction continues to own each of the targeted transactionable locations, wherein individual ones of the non-blocking multi-target transactions do not contribute to progress of another.