summaryrefslogtreecommitdiff
path: root/docs/process.md
blob: 51c6faf45aecef1ebd80f39a7621a67e7dc0c8bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# Process

---

## Allocator

### Object

All objects sizes are rounded up to the next power of two

The minimum allocation size is `2 ** 5` and the max is `2 ** 27`

### Executable Memory

### Pooling

Each pool is an atomic ring buffer of size aligned to a power of two

Every each power of two from the min to max allocation size gets its own ring buffer

### Garbage Collection

## Per Task Queue

An atomic linked list to allow any thread to add to any queue but on the owning thread to read from the queue

## Configuration

### `--thread-count=[NUMBER]`

Total threads to spawn, default is `$(nproc)`

### `--memory-pool-pow2=[POOL POW],[ENTRIES POW]

Set the memory pool of size `2 ** [POOL POW]` to have a total number of entries of `2 ** [ENTRIES POW]`