1. 21
  1.  

  2. 4

    This looks like a nice intro to lockless concurrency - that being said, I think that the main thing for programmers to know about lockless concurrency is to fear it :P

    1. 3

      I think that the main thing for programmers to know about lockless concurrency is to fear it :P

      The problem with rolling your own concurrency is not the complexity of the individual components, but the exponential nature of their interactions. Unfortunately at thee systems level there is often not much one can do to avoid it. I like the approach Rust has taken here by encoding concurrency garunteees in the type system, but there isn’t much help for C programmers.

      1. 2

        In the past, the limitation made people adopt a CSP-like style for programming where the global interactions were explicit. Then, they’d check a model of that with something like SPIN. These days, there’s more effort on static analysis among those who haven’t given up on C concurrency entirely. ;) Found another one just now:

        https://lobste.rs/s/hiwfqh/locksmith_practical_static_race