Real-Time Software Transactional Memory without Retries (TORTIS)
TORTIS is an extension of Rust that adds functionality for real-time software transactional memory without retries. TORTIS extends the Rust compiler to recognize the “transaction” key word, and provides automatic synchronization of shared objects within transactions. To do so, it extends the Rust type system to include TxPointer and TxCell types, which wrap shared objects. An additional pass is added to the compiler to determine what shared objects are used within a transaction, and emit calls to the runtime locking library that TORTIS provides. The runtime library is modular and supports many different synchronization primitives. Currently, a phase-fair reader-writer lock is used.
To get started using TORTIS, see our Getting Started Guide at the "More Information" link above. Because TORTIS is an extension of the Rust compiler, also reference the Rust README. For additional TORTIS documentation, see our Documentation at the above link. To contribute to TORTIS, please see CONTRIBUTING also available at the link.