|
libmizu 0.0.1
Lock-free shared-memory IPC
|
Data Fields | |
| uint32_t | magic |
| uint32_t | version |
| uint32_t | max_workers |
| <= MIZU_MAX_WORKERS | |
| uint32_t | max_submitters |
| <= 64: inj_ready_sub / full_waiters bits | |
| uint32_t | inj_cap |
| entries per submitter ring, power of two | |
| uint32_t | deque_cap |
| entries per worker deque, power of two | |
| uint32_t | result_slots |
| total; a multiple of max_submitters | |
| uint32_t | slot |
| bytes per entry / result slot, power of two | |
| uint64_t | owner_pid |
| the workers' death-listener watch target | |
| uint64_t | livedir_offset |
| uint64_t | livedir_size |
| uint64_t | worker_ident |
| The workers' identity word (MIZU_IDENT in mizu_ext.h): 0 until the first worker join CASes its binding's word in; a join whose word differs fails, an exact match proceeds. | |
| uint64_t mizu_pool_hdr_s::worker_ident |
The workers' identity word (MIZU_IDENT in mizu_ext.h): 0 until the first worker join CASes its binding's word in; a join whose word differs fails, an exact match proceeds.
Set for the pool's lifetime — never reset, so homogeneity is per pool, not per worker generation. The one field written after create: read it through the mapping, never the validated handle copy, which is stale the moment it lands.