add cow support of varray and version 0.0.2
This commit is contained in:
parent
10c32f769b
commit
7212ba170d
5 changed files with 48 additions and 3 deletions
|
|
@ -5,6 +5,7 @@
|
|||
#include <stdarg.h>
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
#include <stdbool.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <sys/types.h>
|
||||
|
|
@ -170,6 +171,10 @@ typedef int (*vget_vec_fn_t)(meta_obj_t*, int, int*, void**);
|
|||
typedef int (*vput_fn_t)(meta_obj_t*, int, void*);
|
||||
typedef int (*vput_vec_fn_t)(meta_obj_t*, int, int*, void**);
|
||||
typedef int (*vclear_fn_t)(meta_obj_t*, int);
|
||||
/* COW snapshot support — freeze/thaw for application-level copy-on-write */
|
||||
typedef bool (*retain_fn_t)(void*, void*);
|
||||
typedef int (*vfreeze_fn_t)(meta_obj_t*);
|
||||
typedef int (*vthaw_fn_t)(meta_obj_t*, retain_fn_t, void*);
|
||||
|
||||
typedef struct {
|
||||
vstore_fn_t vstore;
|
||||
|
|
@ -178,6 +183,8 @@ typedef struct {
|
|||
vput_fn_t vput;
|
||||
vput_vec_fn_t vput_vec;
|
||||
vclear_fn_t vclear;
|
||||
vfreeze_fn_t vfreeze; /* NEW — freeze (O(1) ptr swap) */
|
||||
vthaw_fn_t vthaw; /* NEW — thaw + merge + GC */
|
||||
} intf_varray_t;
|
||||
|
||||
/* attrs API */
|
||||
|
|
@ -257,6 +264,8 @@ extern int vget_vec(var, int, int*, void**);
|
|||
extern int vput(var, int, void*);
|
||||
extern int vput_vec(var, int, int*, void**);
|
||||
extern int vclear(var, int);
|
||||
extern int vfreeze(var);
|
||||
extern int vthaw(var, retain_fn_t, void*);
|
||||
|
||||
extern int attr_get(var, void*, void**);
|
||||
extern int attr_set(var, void*, void*);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue