The txlib module provides data structures that are safe to use from within transactions and cooperate with the transaction manager. Currently supported are lists, queues, multisets and stacks. More...
Files | |
file | picotm-txlib.h |
Provides transactional data structures. | |
file | picotm-txlist-state.h |
Provides non-transactional state and entries for transactional lists. | |
file | picotm-txlist.h |
Provides transactional lists. | |
file | picotm-txmultiset-state.h |
Provides non-transactional state and entries for transactional multisets. | |
file | picotm-txmultiset.h |
Provides transactional multisets. | |
file | picotm-txqueue-state.h |
Provides non-transactional state and entries for transactional queues. | |
file | picotm-txqueue.h |
Provides transactional queues. | |
file | picotm-txstack-state.h |
Provides non-transactional state and entries for transactional stacks. | |
file | picotm-txstack.h |
Provides transactional stacks. | |
Data Structures | |
struct | txlist |
A handle for operating on transaction-safe lists. More... | |
struct | txlist_entry |
Represents an entry in a transaction-safe list. More... | |
struct | txlist_state |
The global state of transaction-safe list. More... | |
struct | txmultiset |
A handle for operating on transaction-safe multisets. More... | |
struct | txmultiset_entry |
Represents an entry in a transaction-safe multiset. More... | |
struct | txmultiset_state |
The global state of transaction-safe multiset. More... | |
struct | txqueue |
A handle for operating on transaction-safe queues. More... | |
struct | txqueue_entry |
Represents an entry in a transaction-safe queue. More... | |
struct | txqueue_state |
The global state of transaction-safe queue. More... | |
struct | txstack |
A handle for operating on transaction-safe stacks. More... | |
struct | txstack_entry |
Represents an entry in a transaction-safe stack. More... | |
struct | txstack_state |
The global state of transaction-safe stack. More... | |
Macros | |
#define | TXLIST_ENTRY_INITIALIZER |
Initializer macro for struct txlist_entry . | |
#define | TXLIST_STATE_INITIALIZER(list_state) |
Initializer macro for struct txlist_state . | |
#define | TXMULTISET_ENTRY_INITIALIZER |
Initializer macro for struct txmultiset_entry . | |
#define | TXMULTISET_STATE_INITIALIZER(_multiset_state, _key, _compare) |
Initializer macro for struct txmultiset_state . | |
#define | TXQUEUE_ENTRY_INITIALIZER |
Initializer macro for struct txqueue_entry . | |
#define | TXQUEUE_STATE_INITIALIZER(queue_state) |
Initializer macro for struct txqueue_state . | |
#define | TXSTACK_ENTRY_INITIALIZER |
Initializer macro for struct txstack_entry . | |
#define | TXSTACK_STATE_INITIALIZER(stack_state) |
Initializer macro for struct txstack_state . | |
Typedefs | |
typedef int(* | txmultiset_compare_function) (const void *lhs, const void *rhs) |
Key-compare function for two multiset-entry keys. More... | |
typedef const void *(* | txmultiset_key_function) (struct txmultiset_entry *entry) |
Generates a compare key for a multiset entry. More... | |
Functions | |
PICOTM_NOTHROW struct txlist_entry * | txlist_back_tx (struct txlist *self) |
Returns the back-end entry of a transactional list without removing it. More... | |
PICOTM_NOTHROW struct txlist_entry * | txlist_begin_tx (struct txlist *self) |
Returns the first entry of a transactional list. More... | |
PICOTM_NOTHROW void | txlist_clear_tx (struct txlist *self) |
Removes all entries from a transactional list. More... | |
PICOTM_NOTHROW bool | txlist_empty_tx (struct txlist *self) |
Tests a transactional list for emptiness. More... | |
PICOTM_NOTHROW struct txlist_entry * | txlist_end_tx (struct txlist *self) |
Returns the terminator of a transactional list. More... | |
PICOTM_NOTHROW void | txlist_entry_init (struct txlist_entry *self) |
Initializes an entry of a transactional list. More... | |
PICOTM_NOTHROW void | txlist_entry_init_tm (struct txlist_entry *self) |
Initializes an entry of a transactional list from within a transaction. More... | |
PICOTM_NOTHROW struct txlist_entry * | txlist_entry_next_tx (const struct txlist_entry *self) |
Returns the next list entry. More... | |
PICOTM_NOTHROW struct txlist_entry * | txlist_entry_prev_tx (const struct txlist_entry *self) |
Returns the previous list entry. More... | |
PICOTM_NOTHROW void | txlist_entry_uninit (struct txlist_entry *self) |
Cleans up an entry of a transactional list. More... | |
PICOTM_NOTHROW void | txlist_entry_uninit_tm (struct txlist_entry *self) |
Cleans up an entry of a transactional list from within a transaction. More... | |
PICOTM_NOTHROW void | txlist_erase_tx (struct txlist *self, struct txlist_entry *entry) |
Removes an entry from a transactional list. More... | |
PICOTM_NOTHROW struct txlist_entry * | txlist_front_tx (struct txlist *self) |
Returns the front-end entry of a transactional list without removing it. More... | |
PICOTM_NOTHROW void | txlist_insert_tx (struct txlist *self, struct txlist_entry *entry, struct txlist_entry *position) |
Inserts an entry into a transactional list. More... | |
PICOTM_NOTHROW struct txlist * | txlist_of_state_tx (struct txlist_state *list_state) |
Creates a transactional list for a list state. More... | |
PICOTM_NOTHROW void | txlist_pop_back_tx (struct txlist *self) |
Removes the last entry of a transactional list. More... | |
PICOTM_NOTHROW void | txlist_pop_front_tx (struct txlist *self) |
Removes the first entry of a transactional list. More... | |
PICOTM_NOTHROW void | txlist_push_back_tx (struct txlist *self, struct txlist_entry *entry) |
Inserts an entry at the end of a transactional list. More... | |
PICOTM_NOTHROW void | txlist_push_front_tx (struct txlist *self, struct txlist_entry *entry) |
Inserts an entry at the beginning of a transactional list. More... | |
PICOTM_NOTHROW size_t | txlist_size_tx (struct txlist *self) |
Returns the number of entries in a transactional list. More... | |
PICOTM_NOTHROW void | txlist_state_clear_and_uninit_entries (struct txlist_state *self, void(*uninit)(struct txlist_entry *, void *), void *data) |
Removes all entries from a list state and runs a cleanup function on each. More... | |
PICOTM_NOTHROW void | txlist_state_init (struct txlist_state *self) |
Initializes list state. More... | |
PICOTM_NOTHROW void | txlist_state_uninit (struct txlist_state *self) |
Cleans up list state. More... | |
PICOTM_NOTHROW struct txmultiset_entry * | txmultiset_begin_tx (struct txmultiset *self) |
Returns the first entry of a transactional multiset. More... | |
PICOTM_NOTHROW void | txmultiset_clear_tx (struct txmultiset *self) |
Removes all entries from a transactional multiset. More... | |
PICOTM_NOTHROW size_t | txmultiset_count_tx (struct txmultiset *self, const void *key) |
Returns the number of entries with a specfic key in a transactional multiset. More... | |
PICOTM_NOTHROW bool | txmultiset_empty_tx (struct txmultiset *self) |
Tests a transactional multiset for emptiness. More... | |
PICOTM_NOTHROW struct txmultiset_entry * | txmultiset_end_tx (struct txmultiset *self) |
Returns the terminator of a transactional multiset. More... | |
PICOTM_NOTHROW void | txmultiset_entry_init (struct txmultiset_entry *self) |
Initializes an entry of a transactional multiset. More... | |
PICOTM_NOTHROW void | txmultiset_entry_init_tm (struct txmultiset_entry *self) |
Initializes an entry of a transactional multiset from within a transaction. More... | |
PICOTM_NOTHROW struct txmultiset_entry * | txmultiset_entry_next_tx (const struct txmultiset_entry *self) |
Returns the next multiset entry. More... | |
PICOTM_NOTHROW struct txmultiset_entry * | txmultiset_entry_prev_tx (const struct txmultiset_entry *self) |
Returns the previous multiset entry. More... | |
PICOTM_NOTHROW void | txmultiset_entry_uninit (struct txmultiset_entry *self) |
Cleans up an entry of a transactional multiset. More... | |
PICOTM_NOTHROW void | txmultiset_entry_uninit_tm (struct txmultiset_entry *self) |
Cleans up an entry of a transactional multiset from within a transaction. More... | |
PICOTM_NOTHROW void | txmultiset_erase_tx (struct txmultiset *self, struct txmultiset_entry *entry) |
Removes an entry from a transactional multiset. More... | |
PICOTM_NOTHROW struct txmultiset_entry * | txmultiset_find_tx (struct txmultiset *self, const void *key) |
Finds an entry with a specific key in a transactional multiset. More... | |
PICOTM_NOTHROW void | txmultiset_insert_tx (struct txmultiset *self, struct txmultiset_entry *entry) |
Inserts an entry into a transactional multiset. More... | |
PICOTM_NOTHROW struct txmultiset_entry * | txmultiset_lower_bound_tx (struct txmultiset *self, const void *key) |
Returns a transactional multiset's the first entry with a specific key. More... | |
PICOTM_NOTHROW struct txmultiset * | txmultiset_of_state_tx (struct txmultiset_state *multiset_state) |
Creates a transactional multiset for a multiset state. More... | |
PICOTM_NOTHROW size_t | txmultiset_size_tx (struct txmultiset *self) |
Returns the number of entries in a transactional multiset. More... | |
PICOTM_NOTHROW void | txmultiset_state_clear_and_uninit_entries (struct txmultiset_state *self, void(*uninit)(struct txmultiset_entry *, void *), void *data) |
Removes all entries from a multiset state and runs a cleanup function on each. More... | |
PICOTM_NOTHROW void | txmultiset_state_init (struct txmultiset_state *self, txmultiset_key_function key, txmultiset_compare_function compare) |
Initializes multiset state. More... | |
PICOTM_NOTHROW void | txmultiset_state_uninit (struct txmultiset_state *self) |
Cleans up multiset state. More... | |
PICOTM_NOTHROW struct txmultiset_entry * | txmultiset_upper_bound_tx (struct txmultiset *self, const void *key) |
Returns a transactional multiset's first entry with a key larger than a specific key. More... | |
PICOTM_NOTHROW struct txqueue_entry * | txqueue_back_tx (struct txqueue *self) |
Retruns the back-end entry of a transactional queue. More... | |
PICOTM_NOTHROW bool | txqueue_empty_tx (struct txqueue *self) |
Tests a transactional queue for emptiness. More... | |
PICOTM_NOTHROW void | txqueue_entry_init (struct txqueue_entry *self) |
Initializes an entry of a transactional queue. More... | |
PICOTM_NOTHROW void | txqueue_entry_init_tm (struct txqueue_entry *self) |
Initializes an entry of a transactional queue from within a transaction. More... | |
PICOTM_NOTHROW void | txqueue_entry_uninit (struct txqueue_entry *self) |
Cleans up an entry of a transactional queue. More... | |
PICOTM_NOTHROW void | txqueue_entry_uninit_tm (struct txqueue_entry *self) |
Cleans up an entry of a transactional queue. More... | |
PICOTM_NOTHROW struct txqueue_entry * | txqueue_front_tx (struct txqueue *self) |
Returns the front-end entry of a transactional queue. More... | |
PICOTM_NOTHROW struct txqueue * | txqueue_of_state_tx (struct txqueue_state *queue_state) |
Creates a transactional queue for a queue state. More... | |
PICOTM_NOTHROW void | txqueue_pop_tx (struct txqueue *self) |
Removes the last entry of a transactional queue. More... | |
PICOTM_NOTHROW void | txqueue_push_tx (struct txqueue *self, struct txqueue_entry *entry) |
Inserts an entry at the front of a transactional queue. More... | |
PICOTM_NOTHROW size_t | txqueue_size_tx (struct txqueue *self) |
Returns the number of entries in a transactional queue. More... | |
PICOTM_NOTHROW void | txqueue_state_clear_and_uninit_entries (struct txqueue_state *self, void(*uninit)(struct txqueue_entry *, void *), void *data) |
Removes all entries from a queue state and runs a cleanup function on each. More... | |
PICOTM_NOTHROW void | txqueue_state_init (struct txqueue_state *self) |
Initializes queue state. More... | |
PICOTM_NOTHROW void | txqueue_state_uninit (struct txqueue_state *self) |
Cleans up queue state. More... | |
PICOTM_NOTHROW bool | txstack_empty_tx (struct txstack *self) |
Tests a transactional stack for emptiness. More... | |
PICOTM_NOTHROW void | txstack_entry_init (struct txstack_entry *self) |
Initializes an entry of a transactional stack. More... | |
PICOTM_NOTHROW void | txstack_entry_init_tm (struct txstack_entry *self) |
Initializes an entry of a transactional stack from within a transaction. More... | |
PICOTM_NOTHROW void | txstack_entry_uninit (struct txstack_entry *self) |
Cleans up an entry of a transactional stack. More... | |
PICOTM_NOTHROW void | txstack_entry_uninit_tm (struct txstack_entry *self) |
Cleans up an entry of a transactional stack from within a transaction. More... | |
PICOTM_NOTHROW struct txstack * | txstack_of_state_tx (struct txstack_state *stack_state) |
Creates a transactional stack for a stack state. More... | |
PICOTM_NOTHROW void | txstack_pop_tx (struct txstack *self) |
Removes the top-most entry of a transactional stack. More... | |
PICOTM_NOTHROW void | txstack_push_tx (struct txstack *self, struct txstack_entry *entry) |
Inserts an entry at the top of a transactional stack. More... | |
PICOTM_NOTHROW size_t | txstack_size_tx (struct txstack *self) |
Returns the number of entries on a transactional stack. More... | |
PICOTM_NOTHROW void | txstack_state_clear_and_uninit_entries (struct txstack_state *self, void(*uninit)(struct txstack_entry *, void *), void *data) |
Removes all entries from a stack state and runs a cleanup function on each. More... | |
PICOTM_NOTHROW void | txstack_state_init (struct txstack_state *self) |
Initializes stack state. More... | |
PICOTM_NOTHROW void | txstack_state_uninit (struct txstack_state *self) |
Cleans up stack state. More... | |
PICOTM_NOTHROW struct txstack_entry * | txstack_top_tx (struct txstack *self) |
Returns the top-most entry of a transactional stack. More... | |
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.
typedef int(* txmultiset_compare_function) (const void *lhs, const void *rhs) |
lhs | The left-hand-side key. |
rhs | The right-hand-side key. |
typedef const void*(* txmultiset_key_function) (struct txmultiset_entry *entry) |
The | multiset entry. |
PICOTM_NOTHROW struct txlist_entry* txlist_back_tx | ( | struct txlist * | self | ) |
self | The transactional list. |
PICOTM_NOTHROW struct txlist_entry* txlist_begin_tx | ( | struct txlist * | self | ) |
self | The transactional list. |
PICOTM_NOTHROW void txlist_clear_tx | ( | struct txlist * | self | ) |
self | The transactional list. |
PICOTM_NOTHROW bool txlist_empty_tx | ( | struct txlist * | self | ) |
self | The transactional list. |
PICOTM_NOTHROW struct txlist_entry* txlist_end_tx | ( | struct txlist * | self | ) |
self | The transactional list. |
PICOTM_NOTHROW void txlist_entry_init | ( | struct txlist_entry * | self | ) |
self | The list entry to initialize. |
PICOTM_NOTHROW void txlist_entry_init_tm | ( | struct txlist_entry * | self | ) |
self | The list entry to initialize. |
PICOTM_NOTHROW struct txlist_entry* txlist_entry_next_tx | ( | const struct txlist_entry * | self | ) |
self | The current list entry. |
PICOTM_NOTHROW struct txlist_entry* txlist_entry_prev_tx | ( | const struct txlist_entry * | self | ) |
self | The current list entry. |
PICOTM_NOTHROW void txlist_entry_uninit | ( | struct txlist_entry * | self | ) |
self | The list entry to clean up. |
PICOTM_NOTHROW void txlist_entry_uninit_tm | ( | struct txlist_entry * | self | ) |
self | The list entry to clean up. |
PICOTM_NOTHROW void txlist_erase_tx | ( | struct txlist * | self, |
struct txlist_entry * | entry | ||
) |
self | The transactional list. |
entry | The list entry to remove. |
PICOTM_NOTHROW struct txlist_entry* txlist_front_tx | ( | struct txlist * | self | ) |
self | The transactional list. |
PICOTM_NOTHROW void txlist_insert_tx | ( | struct txlist * | self, |
struct txlist_entry * | entry, | ||
struct txlist_entry * | position | ||
) |
self | The transactional list. |
entry | The list entry to insert. |
position | The list entry before which the new entry is inserted. |
PICOTM_NOTHROW struct txlist* txlist_of_state_tx | ( | struct txlist_state * | list_state | ) |
list_state | The list state. |
PICOTM_NOTHROW void txlist_pop_back_tx | ( | struct txlist * | self | ) |
self | The transactional list. |
PICOTM_NOTHROW void txlist_pop_front_tx | ( | struct txlist * | self | ) |
self | The transactional list. |
PICOTM_NOTHROW void txlist_push_back_tx | ( | struct txlist * | self, |
struct txlist_entry * | entry | ||
) |
self | The transactional list. |
entry | The list entry to insert. |
PICOTM_NOTHROW void txlist_push_front_tx | ( | struct txlist * | self, |
struct txlist_entry * | entry | ||
) |
self | The transactional list. |
entry | The list entry to insert. |
PICOTM_NOTHROW size_t txlist_size_tx | ( | struct txlist * | self | ) |
self | The transactional list. |
PICOTM_NOTHROW void txlist_state_clear_and_uninit_entries | ( | struct txlist_state * | self, |
void(*)(struct txlist_entry *, void *) | uninit, | ||
void * | data | ||
) |
self | The list state to clear. |
uninit | The list-entry clean-up function. |
data | The clean-up function's data parameter. |
PICOTM_NOTHROW void txlist_state_init | ( | struct txlist_state * | self | ) |
self | The list state to initialize. |
PICOTM_NOTHROW void txlist_state_uninit | ( | struct txlist_state * | self | ) |
self | The list state to clean up. |
PICOTM_NOTHROW struct txmultiset_entry* txmultiset_begin_tx | ( | struct txmultiset * | self | ) |
self | The transactional multiset. |
PICOTM_NOTHROW void txmultiset_clear_tx | ( | struct txmultiset * | self | ) |
self | The transactional multiset. |
PICOTM_NOTHROW size_t txmultiset_count_tx | ( | struct txmultiset * | self, |
const void * | key | ||
) |
self | The transactional multiset. |
key | The multiset entry's key. |
PICOTM_NOTHROW bool txmultiset_empty_tx | ( | struct txmultiset * | self | ) |
self | The transactional multiset. |
PICOTM_NOTHROW struct txmultiset_entry* txmultiset_end_tx | ( | struct txmultiset * | self | ) |
self | The transactional multiset. |
PICOTM_NOTHROW void txmultiset_entry_init | ( | struct txmultiset_entry * | self | ) |
self | The multiset entry to initialize. |
PICOTM_NOTHROW void txmultiset_entry_init_tm | ( | struct txmultiset_entry * | self | ) |
self | The multiset entry to initialize. |
PICOTM_NOTHROW struct txmultiset_entry* txmultiset_entry_next_tx | ( | const struct txmultiset_entry * | self | ) |
self | The current multiset entry. |
PICOTM_NOTHROW struct txmultiset_entry* txmultiset_entry_prev_tx | ( | const struct txmultiset_entry * | self | ) |
self | The current multiset entry. |
PICOTM_NOTHROW void txmultiset_entry_uninit | ( | struct txmultiset_entry * | self | ) |
self | The multiset entry to clean up. |
PICOTM_NOTHROW void txmultiset_entry_uninit_tm | ( | struct txmultiset_entry * | self | ) |
self | The multiset entry to clean up. |
PICOTM_NOTHROW void txmultiset_erase_tx | ( | struct txmultiset * | self, |
struct txmultiset_entry * | entry | ||
) |
self | The transactional multiset. |
entry | The multiset entry to remove. |
PICOTM_NOTHROW struct txmultiset_entry* txmultiset_find_tx | ( | struct txmultiset * | self, |
const void * | key | ||
) |
self | The transactional multiset. |
key | The multiset entry's key. |
PICOTM_NOTHROW void txmultiset_insert_tx | ( | struct txmultiset * | self, |
struct txmultiset_entry * | entry | ||
) |
self | The transactional multiset. |
entry | The multiset entry to insert. |
PICOTM_NOTHROW struct txmultiset_entry* txmultiset_lower_bound_tx | ( | struct txmultiset * | self, |
const void * | key | ||
) |
self | The transactional multiset. |
key | The multiset entry's key. |
PICOTM_NOTHROW struct txmultiset* txmultiset_of_state_tx | ( | struct txmultiset_state * | multiset_state | ) |
multiset_state | The multiset state. |
PICOTM_NOTHROW size_t txmultiset_size_tx | ( | struct txmultiset * | self | ) |
self | The transactional multiset. |
PICOTM_NOTHROW void txmultiset_state_clear_and_uninit_entries | ( | struct txmultiset_state * | self, |
void(*)(struct txmultiset_entry *, void *) | uninit, | ||
void * | data | ||
) |
self | The multiset state to clear. |
uninit | The multiset-entry clean-up function. |
data | The clean-up function's data parameter. |
PICOTM_NOTHROW void txmultiset_state_init | ( | struct txmultiset_state * | self, |
txmultiset_key_function | key, | ||
txmultiset_compare_function | compare | ||
) |
self | The multiset state to initialize. |
key | The key generator function for the multiset's entries. |
compare | The key-compare function. |
PICOTM_NOTHROW void txmultiset_state_uninit | ( | struct txmultiset_state * | self | ) |
self | The multiset state to clean up. |
PICOTM_NOTHROW struct txmultiset_entry* txmultiset_upper_bound_tx | ( | struct txmultiset * | self, |
const void * | key | ||
) |
self | The transactional multiset. |
key | The multiset entry's key. |
PICOTM_NOTHROW struct txqueue_entry* txqueue_back_tx | ( | struct txqueue * | self | ) |
self | The transactional queue. |
PICOTM_NOTHROW bool txqueue_empty_tx | ( | struct txqueue * | self | ) |
self | The transactional queue. |
PICOTM_NOTHROW void txqueue_entry_init | ( | struct txqueue_entry * | self | ) |
self | The queue entry to initialize. |
PICOTM_NOTHROW void txqueue_entry_init_tm | ( | struct txqueue_entry * | self | ) |
self | The queue entry to initialize. |
PICOTM_NOTHROW void txqueue_entry_uninit | ( | struct txqueue_entry * | self | ) |
self | The queue entry to clean up. |
PICOTM_NOTHROW void txqueue_entry_uninit_tm | ( | struct txqueue_entry * | self | ) |
self | The queue entry to clean up. |
PICOTM_NOTHROW struct txqueue_entry* txqueue_front_tx | ( | struct txqueue * | self | ) |
self | The transactional queue. |
PICOTM_NOTHROW struct txqueue* txqueue_of_state_tx | ( | struct txqueue_state * | queue_state | ) |
queue_state | The queue state. |
PICOTM_NOTHROW void txqueue_pop_tx | ( | struct txqueue * | self | ) |
self | The transactional queue. |
PICOTM_NOTHROW void txqueue_push_tx | ( | struct txqueue * | self, |
struct txqueue_entry * | entry | ||
) |
self | The transactional queue. |
entry | The queue entry to insert. |
PICOTM_NOTHROW size_t txqueue_size_tx | ( | struct txqueue * | self | ) |
self | The transactional queue. |
PICOTM_NOTHROW void txqueue_state_clear_and_uninit_entries | ( | struct txqueue_state * | self, |
void(*)(struct txqueue_entry *, void *) | uninit, | ||
void * | data | ||
) |
self | The queue state to clear. |
uninit | The queue-entry clean-up function. |
data | The clean-up function's data parameter. |
PICOTM_NOTHROW void txqueue_state_init | ( | struct txqueue_state * | self | ) |
self | The queue state to initialize. |
PICOTM_NOTHROW void txqueue_state_uninit | ( | struct txqueue_state * | self | ) |
self | The queue state to clean up. |
PICOTM_NOTHROW bool txstack_empty_tx | ( | struct txstack * | self | ) |
self | The transactional stack. |
PICOTM_NOTHROW void txstack_entry_init | ( | struct txstack_entry * | self | ) |
self | The stack entry to initialize. |
PICOTM_NOTHROW void txstack_entry_init_tm | ( | struct txstack_entry * | self | ) |
self | The stack entry to initialize. |
PICOTM_NOTHROW void txstack_entry_uninit | ( | struct txstack_entry * | self | ) |
self | The stack entry to clean up. |
PICOTM_NOTHROW void txstack_entry_uninit_tm | ( | struct txstack_entry * | self | ) |
self | The stack entry to clean up. |
PICOTM_NOTHROW struct txstack* txstack_of_state_tx | ( | struct txstack_state * | stack_state | ) |
stack_state | The stack state. |
PICOTM_NOTHROW void txstack_pop_tx | ( | struct txstack * | self | ) |
self | The transactional stack. |
PICOTM_NOTHROW void txstack_push_tx | ( | struct txstack * | self, |
struct txstack_entry * | entry | ||
) |
self | The transactional stack. |
entry | The stack entry to insert. |
PICOTM_NOTHROW size_t txstack_size_tx | ( | struct txstack * | self | ) |
self | The transactional stack. |
PICOTM_NOTHROW void txstack_state_clear_and_uninit_entries | ( | struct txstack_state * | self, |
void(*)(struct txstack_entry *, void *) | uninit, | ||
void * | data | ||
) |
self | The stack state to clear. |
uninit | The stack-entry clean-up function. |
data | The clean-up function's data parameter. |
PICOTM_NOTHROW void txstack_state_init | ( | struct txstack_state * | self | ) |
self | The stack state to initialize. |
PICOTM_NOTHROW void txstack_state_uninit | ( | struct txstack_state * | self | ) |
self | The stack state to clean up. |
PICOTM_NOTHROW struct txstack_entry* txstack_top_tx | ( | struct txstack * | self | ) |
self | The transactional stack. |