• rath@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    1 year ago

    It’s hard if you have unprotected, shared mutable state. If you use a language that uses immutable data structures (Haskell, Clojure, Erlang) it’s easy! If you use a language that won’t let you share mutable data without the required protection (Rust) it’s also easy! Everything else and you can be sure that even if it looks like it works, it most likely doesn’t.

    • Sibbo@sopuli.xyz
      link
      fedilink
      arrow-up
      1
      ·
      1 year ago

      Yep. I remember parallelising emarrasingly parallel C++ code once. I had an array for the results of each job, but forgot to give each job their own index in the array. So everyone wrote their results to the zeroeth entry in parallel. It was cache efficient this way, but the result was not what I expected.