To enable use of shared memory in the modules, we need a set of safe abstractions over src/os/unix/ngx_atomic.h, src/core/ngx_shmtx.h, src/core/ngx_slab.h and src/core/ngx_rwlock.h.
The goal is both to offer good safe Rust types and to be interoperable with the existing C types (upstream peers might be the most important here). It is acceptable if these goals lead to a two distinct sets of types.
Some inspiration could be taken from the Rust for Linux project and the Rust Atomics and Locks book.
To enable use of shared memory in the modules, we need a set of safe abstractions over
src/os/unix/ngx_atomic.h,src/core/ngx_shmtx.h,src/core/ngx_slab.handsrc/core/ngx_rwlock.h.The goal is both to offer good safe Rust types and to be interoperable with the existing C types (upstream peers might be the most important here). It is acceptable if these goals lead to a two distinct sets of types.
Some inspiration could be taken from the Rust for Linux project and the Rust Atomics and Locks book.