|
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 |