|
tlds
Transactional Operations for Linked Data Structures
|
#include <stdlib.h>#include <string.h>#include <assert.h>#include "common/fraser/portable_defns.h"#include "common/fraser/ptst.h"#include "lockfreeskip.h"Classes | |
| struct | node_st |
| struct | fr_set_st |
Macros | |
| #define | __SET_IMPLEMENTATION__ |
| #define | LEVEL_MASK 0x0ff |
| #define | READY_FOR_FREE 0x100 |
Typedefs | |
| typedef struct node_st | node_t |
| typedef struct fr_set_st | boost_skip |
| typedef VOLATILE node_t * | sh_node_pt |
Functions | |
| static int | get_level (ptst_t *ptst) |
| static node_t * | alloc_node (ptst_t *ptst) |
| static void | free_node (ptst_t *ptst, sh_node_pt n) |
| static sh_node_pt | strong_search_predecessors (boost_skip *l, setkey_t k, sh_node_pt *pa, sh_node_pt *na) |
| static sh_node_pt | weak_search_predecessors (boost_skip *l, setkey_t k, sh_node_pt *pa, sh_node_pt *na) |
| static void | mark_deleted (sh_node_pt x, int level) |
| static int | check_for_full_delete (sh_node_pt x) |
| static void | do_full_delete (ptst_t *ptst, boost_skip *l, sh_node_pt x, int level) |
| boost_skip * | boostskip_alloc (void) |
| setval_t | set_update (boost_skip *l, setkey_t k, setval_t v, int overwrite) |
| setval_t | set_remove (boost_skip *l, setkey_t k) |
| setval_t | set_lookup (boost_skip *l, setkey_t k) |
| void | init_boostskip_subsystem (void) |
| void | destroy_boostskip_subsystem (void) |
| void | boostskip_print (boost_skip *l) |
Variables | |
| static int | gc_id [NUM_LEVELS] |
| #define __SET_IMPLEMENTATION__ |
| #define LEVEL_MASK 0x0ff |
| #define READY_FOR_FREE 0x100 |
| typedef struct fr_set_st boost_skip |
| typedef VOLATILE node_t* sh_node_pt |
| boost_skip* boostskip_alloc | ( | void | ) |
| void boostskip_print | ( | boost_skip * | l | ) |
|
static |
| void destroy_boostskip_subsystem | ( | void | ) |
|
static |
|
static |
|
static |
| void init_boostskip_subsystem | ( | void | ) |
|
static |
| setval_t set_lookup | ( | boost_skip * | l, |
| setkey_t | k | ||
| ) |
| setval_t set_remove | ( | boost_skip * | l, |
| setkey_t | k | ||
| ) |
| setval_t set_update | ( | boost_skip * | l, |
| setkey_t | k, | ||
| setval_t | v, | ||
| int | overwrite | ||
| ) |
|
static |
|
static |
|
static |