From 4da9de3213a28c7e17945168acdb06308bb41df8 Mon Sep 17 00:00:00 2001 From: nodist Date: Tue, 9 Jun 2026 10:07:44 -0400 Subject: use group for tuple and table --- docs/application/gc.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) (limited to 'docs/application/gc.md') diff --git a/docs/application/gc.md b/docs/application/gc.md index 9364e12..ff538ee 100644 --- a/docs/application/gc.md +++ b/docs/application/gc.md @@ -15,16 +15,16 @@ typedef struct _kpl_gc { pthread_mutex_t mutex; } kpl_gc; -static _Atomic size_t marked_threads; +static _Atomic size_t gc_threads; -static kpl_gc *old_gc_head, *gc_head, *gc_tail; +static kpl_gc *old_gc_head, *gc_head; ``` ## Counting `ref_count` starts at 1 -Each assign increments the reference count, each time it goes out of scope the reference count is decreased +Each assign increments the `ref_count`, each time it goes out of scope the `ref_count` is decreased When `ref_count` hits 0, data is freed @@ -33,6 +33,6 @@ When `ref_count` hits 0, data is freed 1. Once triggered add a init task to the async queue 2. This task moves the `gc_head` to the `old_gc_head` and sets the `gc_wait` to off for each thread 3. Each thread will run down its queue queue marking found gc objects -3. Once all have run and `marked_threads == available_threads` add a mark and sweep task to the async queue +3. Once all have run and `gc_threads == available_threads` add a mark and sweep task to the async queue 4. Async task goes down async queue and does final mark, then a sweep on the `old_gc_head` is done -5. What remains on the `old_gc_head` is added to the gc tail +5. What remains on the `old_gc_head` is added to `gc_head` -- cgit v1.2.3