A developer recounts debugging duplicate onboarding emails through four failed fixes using Redis leases, discovering that timeouts cannot guarantee atomicity—each solution introduced new race conditions between checking, claiming, sending, and flagging operations.
An article examining atomics in C explores how simple operations like variable increments can break down into multiple steps at the machine level, leading to race conditions in multithreaded code. The C11 standard introduced <stdatomic.h> with atomic types and operations to ensure indivisible execution, while memory ordering semantics like memory_order_relaxed and seq_cst define precise contracts between threads to prevent subtle concurrency bugs.
The article discusses challenges in testing race conditions in multi-threaded software, particularly in the Linux kernel, and presents MAccConc, a tooling suite that automatically explores possible thread interleavings to help discover and verify concurrency bugs. The tools include automatic testing of all possible interleavings, a terminal UI, and a GUI for manual exploration.
A technical article arguing that East Asian mathematical and mechanical systems from the 11th–14th centuries provide frameworks for understanding modern concurrent programming, specifically using classical Chinese logic to model thread-safe memory deallocation and prevent double-free errors in systems like C.