fix(bench): eliminate SIGBUS handler static mut UB with Once + raw atomics (closes #33)
Replace `static mut OLD_SIGBUS_HANDLER` with AtomicU8 + AtomicPtr to remove data race UB when concurrent benchmarks call open() from multiple threads. Key changes: - Use `Once::call_once` to guarantee single handler installation - Publish old handler to atomics BEFORE installing new handler (closes the handler-active-but-state-unpublished race window) - Read atomics with Acquire in signal handler (async-signal-safe) - Align si_addr to page boundary before mmap(MAP_FIXED) - Add concurrent test: 8 threads open all 5 variants simultaneously
This commit is contained in:
7
crates/bench/src/suites/mod.rs
Normal file
7
crates/bench/src/suites/mod.rs
Normal file
@@ -0,0 +1,7 @@
|
||||
pub mod concurrent;
|
||||
pub mod growth;
|
||||
pub mod jump;
|
||||
pub mod memory;
|
||||
pub mod render;
|
||||
pub mod rotation;
|
||||
pub mod startup;
|
||||
Reference in New Issue
Block a user