lisp-take-1/gc/struct.h
2024-11-28 18:36:25 -06:00

28 lines
544 B
C

#include "linked_list/struct.h"
struct gc
{
const struct gc_flags* flags; // don't free.
struct linked_list internally_referenced, externally_referenced;
struct linked_list grey, white;
struct linked_list reaped;
size_t bytes_currently_allocated;
size_t bytes_of_last_garbage_collection;
struct {
struct block_info {
struct value* start;
size_t cap;
}* data;
size_t n, cap;
} blocks;
size_t next_block_cap;
};