diff options
| author | nodist <kevin.comas.git@gmail.com> | 2026-07-27 17:17:56 -0400 |
|---|---|---|
| committer | nodist <kevin.comas.git@gmail.com> | 2026-07-27 17:17:56 -0400 |
| commit | bb912b081ed339e4a5419bd3d2ffd7465f2f72d3 (patch) | |
| tree | 7f34b3af1a72672de1d12c8e23dda419c398dce3 /docs/application/shared.md | |
| parent | 003119b9f285e5610f56186bce845441409265ae (diff) | |
bottom up redesign
Diffstat (limited to 'docs/application/shared.md')
| -rw-r--r-- | docs/application/shared.md | 38 |
1 files changed, 0 insertions, 38 deletions
diff --git a/docs/application/shared.md b/docs/application/shared.md deleted file mode 100644 index 0528645..0000000 --- a/docs/application/shared.md +++ /dev/null @@ -1,38 +0,0 @@ -# Shared - ---- - -## Object Definitions - -```c -typedef struct _kpl_shared { - bool mark; - kpl_class data; - kpl_mutex mutex; -} kpl_shared; - -_Atomic uint32_t shared_threads_makred; - -static kpl_shared *shared_mark_head, *shared_head; - -static kpl_mutex shared_head_mutex; -``` - -# Garbage Collection - -## Initiation Task - -1. Move `shared_head` to `shared_mark_head` -2. Set `shared_threads_makred` to 0 -3. Add a mark task to each of the threads - -## Mark Task(s) - -1. Run gc interface on each task in the threads queue -2. Increase `shared_threads_makred` -3. If `shared_threads_makred` is equal to `avaiable_threads` schedule sweep task - -## Sweep Task - -1. Go through `shared_mark_head` freeing anything that is not marked -2. Add anything left on `shared_mark_head` to `shared_head` |
