What every systems programmer should know about concurrency Matt Kline April 28, 2020 Abstract Systems programmers are familiar with tools like mutexes, semaphores, and condition variables. But how do they work? How do we write concurrent code when they’re not available, like when we’re working below the operating system in an embedded environment, or when we can’t block due to hard time constrain