tlds
Transactional Operations for Linked Data Structures
|
#include <unistd.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
#include <assert.h>
#include "common/fraser/portable_defns.h"
#include "common/fraser/gc.h"
#include "common/fraser/stm.h"
#include "stmskip.h"
Classes | |
struct | node_st |
Macros | |
#define | __STMSKIP_IMPLEMENTATION__ |
#define | MEMORY (shared.memory) |
Typedefs | |
typedef struct node_st | node_t |
typedef stm_blk | set_t |
Enumerations | |
enum | SetOpType { FIND = 0, INSERT, DELETE, FIND = 0, INSERT, DELETE } |
Functions | |
static int | get_level (ptst_t *ptst) |
static node_t * | search_predecessors (ptst_t *ptst, stm_tx *tx, set_t *l, setkey_t k, stm_blk **pa, stm_blk **na) |
set_t * | stmskip_alloc (void) |
setval_t | stmskip_update (ptst_t *ptst, stm_tx *tx, set_t *l, setkey_t k, setval_t v) |
setval_t | stmskip_remove (ptst_t *ptst, stm_tx *tx, set_t *l, setkey_t k) |
setval_t | stmskip_lookup (ptst_t *ptst, stm_tx *tx, set_t *l, setkey_t k) |
bool | __attribute__ ((optimize(0))) stmskip_execute_ops(void *s |
new_stm_tx (tx, ptst, MEMORY) | |
for (int i=0;i< op_size;++i) | |
if (commit_stm_tx(ptst, tx)) | |
fr_critical_exit (ptst) | |
void | init_stmskip_subsystem (void) |
void | destory_stmskip_subsystem (void) |
Variables | |
static uint32_t | g_count_commit = 0 |
static uint32_t | g_count_abort = 0 |
static uint32_t | g_count_real_abort = 0 |
struct { | |
stm * memory | |
} | shared |
bool set_op | ops [] |
bool set_op int op_size set_t * | l = (set_t*)s |
bool | ret = false |
ptst_t * | ptst = fr_critical_enter() |
stm_tx * | tx |
else | |
#define __STMSKIP_IMPLEMENTATION__ |
#define MEMORY (shared.memory) |
enum SetOpType |
bool __attribute__ | ( | (optimize(0)) | ) |
void destory_stmskip_subsystem | ( | void | ) |
for | ( | ) |
fr_critical_exit | ( | ptst | ) |
|
static |
if | ( | commit_stm_tx(ptst, tx) | ) |
void init_stmskip_subsystem | ( | void | ) |
|
static |
set_t* stmskip_alloc | ( | void | ) |
else |
|
static |
|
static |
|
static |
bool set_op ops[] |
ptst = fr_critical_enter() |
return ret = false |
struct { ... } shared |
stm_tx* tx |