TLDS provides a framework for developing transactional containers from lock-free ones. It includes two examples of transactional data structures, a lock-free linked list and a lock-free skip list. We are currently working on supporting transactional data structures for non-linked containers and also transactions that are executed on multiple containers.
Lock-free algorithms guarantee that the system makes progress in a finite number of steps, regardless of the system scheduler or actions of other threads. This property is critical for real-time systems.
As a framework, TLDS provides a way to transform hand-crafted lock-free data structures into transactional ones. This transformation degrades neither the progress nor correctness guarantees.
TLDS provides two lock-free transactional data structures as examples of its transformation approach. The provided containers are a linked list and a skip list.