Patent ID: 8245244
Filing Date: 2012-08-14
Classification: G06F

Abstract:
1. An apparatus comprising: a memory having stored thereon compiled code corresponding to a transaction, wherein the transaction includes at least one call to a first routine of a pair of first and second mutually inverse routines, and wherein the compiled code includes a call to a first wrapped routine replacing the call to said first routine, and a call to a second wrapped routine corresponding to said second routine; and a runtime library including wrapper code, wherein the wrapper code, when executed in response to the call to the first wrapped routine, results in executing said call to said first routine within said transaction, maintaining a record including an identifier of the transaction including said call to said first routine, undoing said call to said first routine responsive to abort of said transaction, and deleting said record if said transaction commits, wherein said wrapper code, when executed in response to the call to the second wrapped routine, results in determining whether or not to execute the call to said second routine by comparing an identifier of a transaction including the call to said second routine to the identifier of the transaction including the call to said first routine, and executing the call to said second routine only if the transaction including the call to said second routine is not an ancestor of the transaction including said call to said first routine.