Page Menu
Home
Phorge
Search
Configure Global Search
Log In
Files
F2916178
gc.h
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Flag For Later
Award Token
Size
1 KB
Referenced Files
None
Subscribers
None
gc.h
View Options
#ifndef GC_H
#define GC_H
#include
<types.h>
#include
<stdbool.h>
#define ROPE_FLAG (1ULL << 63)
#define ROPE_DEPTH_SHIFT 56
#define ROPE_DEPTH_MASK 0x7FULL
#define ROPE_MAX_DEPTH 64
#define ROPE_FLATTEN_THRESHOLD (32 * 1024)
typedef
struct
{
jsoff_t
header
;
jsval_t
left
;
jsval_t
right
;
jsval_t
cached
;
}
rope_node_t
;
#define GC_FWD_LOAD_FACTOR 70
#define GC_ROOTS_INITIAL_CAP 32
#define GC_CB(ret, name, arg) ret (*name)(void *ctx, arg old)
#define GC_CTX void *ctx
#define GC_FWD_OFF GC_CB(jsoff_t, fwd_off, jsoff_t)
#define GC_FWD_VAL GC_CB(jsval_t, fwd_val, jsval_t)
#define GC_WEAK_OFF GC_CB(jsoff_t, weak_off, jsoff_t)
#define GC_OP_VAL void (*op_val)(void *ctx, jsval_t *val)
#define GC_FWD_ARGS GC_FWD_VAL, GC_CTX
#define GC_RESERVE_ARGS ant_t *js, GC_FWD_OFF, GC_FWD_ARGS
#define GC_UPDATE_ARGS ant_t *js, GC_FWD_OFF, GC_WEAK_OFF, GC_FWD_ARGS
#define GC_OP_VAL_ARGS GC_OP_VAL, GC_CTX
#define FWD_EMPTY ((jsoff_t)~0)
#define FWD_TOMBSTONE ((jsoff_t)~1)
#define GC_BIGINT_HEADER_SHIFT 4
#define GC_SYM_HEADER_SHIFT 4
#define GC_BIGINT_HEADER_LOW_MASK ((jsoff_t)((1u << GC_BIGINT_HEADER_SHIFT) - 1u))
#define GC_SYM_HEADER_LOW_MASK ((jsoff_t)((1u << GC_SYM_HEADER_SHIFT) - 1u))
#define GC_SYM_HEAP_FIXED (sizeof(uint32_t) + sizeof(uint32_t) + sizeof(uintptr_t))
#ifdef _WIN32
#define RELEASE_PAGES(p, sz) VirtualAlloc(p, sz, MEM_RESET, PAGE_READWRITE)
#elif defined(__APPLE__)
#define RELEASE_PAGES(p, sz) madvise(p, sz, MADV_FREE)
#else
#define RELEASE_PAGES(p, sz) madvise(p, sz, MADV_DONTNEED)
#endif
#define GC_HEAP_TYPE_MASK ( \
(1u << T_OBJ) | (1u << T_PROP) | (1u << T_STR) | \
(1u << T_ARR) | (1u << T_PROMISE) | (1u << T_BIGINT) | (1u << T_GENERATOR) | \
(1u << T_SYMBOL))
extern
uint32_t
gc_epoch_counter
;
void
js_gc_maybe
(
ant_t
*
js
);
void
js_gc_throttle
(
bool
enabled
);
#endif
File Metadata
Details
Attached
Mime Type
text/x-c
Expires
Thu, Mar 26, 4:42 PM (2 d)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
511845
Default Alt Text
gc.h (1 KB)
Attached To
Mode
rANT Ant
Attached
Detach File
Event Timeline
Log In to Comment