Patent ID: 7711678

Claim:
A method, implemented on a computer system, for applying ordering to transactions in a software transactional memory system comprising the steps of: allowing a pre-determined commit order to be specified for a plurality of related transactions at any point in time before executing the plurality of related transactions; using the pre-determined commit order to provide a commit order number for each of the plurality of related transactions; executing multiple transactions within a shared software transactional memory, wherein each of the multiple transactions executes atomically with respect to others of the multiple transactions in the software transaction memory, the executing including: executing a first transaction of the plurality of related transactions and a second transaction of the plurality of related transactions, the commit order number of the first transaction being different from the commit order number of the second transaction; managing the execution of the multiple transactions within the software transactional memory system, the managing including: detecting a conflict between the first transaction and the second transaction; and resolving the conflict by: placing the second transaction in a hold state based on the commit order number of the second transaction; committing the first transaction based on the commit order number of the first transaction; and committing the second transaction after the first transaction is committed, wherein the method is performed by at least one computing device of the computer system.