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 |