1. A method comprising: initiating, by a computing device, a transaction corresponding to an application, the transaction comprising operations for accessing data stored in a shared memory; buffering, by the computing device, alterations to the data as speculative alterations to the shared memory; reserving, by the computing device, a first memory location for storing a continuation state corresponding to the transaction, the continuation state being associated with information stored in a second memory location that is different from the first memory location; detecting, by the computing device, a transaction abort scenario corresponding to the transaction; storing, by the computing device and based on detecting the transaction abort scenario, the continuation state in the first memory location, storing, by the computing device and based on detecting the transaction abort scenario, a notification of a pending abort operation in the second memory location; determining, by the computing device and based on instructions received from the application regarding the transaction abort scenario, whether the transaction is to be aborted without delay; and selectively: restoring, by the computing device when the transaction is not to be aborted without delay, the transaction to the continuation state stored in the first memory location based on the notification of the pending abort operation stored in the second memory location; or restoring, by the computing device when the transaction is to be aborted without delay, the transaction to an operation prior to buffering the alterations to the data as speculative alterations to the shared memory.