Design choices for language-based transactions
Tim Harris · 2021
This report discusses two design choices which arose in our recent work on introducing a new ‘atomic’ keyword as an extension to the Java programming language. We discuss the extent to which programs using atomic blocks should be provided with an explicit ‘abort’ operation to roll-back the effects of the current block. We also discuss mechanisms for supporting blocks that perform I/O operations or external database transactions.