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]`
|