Detailed Description

Txlib, the transactional data-structures module, provides data structures that are safe and efficient to use from within transactions. Each data strcuture's implementation cooperates with the transaction manager to provide concurrency control and error recovery.

As a quick example, the following code removes an entry from a source list and appends it to a destination list. The change becomes globally visible during the transaction's successful commit. Concurrent, conflicting access to the list data strcutures is detected and resolved automatically. If the transaction has to roll back at any point, the invoked operation are reverted and the lists return to their previous state.

For more information, refer to the documentation of the specific data structure.

Transactional Lists
The transactional list provides a transaction-safe implementation of a double-linked list. Efficient insert and remove operations are supported anywhere within the list.

Transactional Queues
The transactional queue provides a transaction-safe implementation of a single-ended FIFO queue. Efficient insert operations are supported on one end, efficient remove operations are supported on the opposite end.

Transactional Multisets
The transactional multiset provides a transaction-safe implementation of a multiset. Multisets are sorted sets of elements. Duplicate entries are supported.

Transactional Stacks
The transactional stack provides a transaction-safe implementation of a single-ended LIFO stack. Efficient insert and remove operations are supported on the same end.