I've started doing the research for a project in February and have run into probably having to deal with the concept of memory fences instead of just locks
Built a few test programs, got correct answers out, checked the disasm, discovered that the compiler emitted no instructionis for any of the fence points
I *think* what is happening here is that the guarantees I need for this are provided automatically by x86_64's memory model, and that if I want to see actual code emitted for it, I'll have to work with Aarch64 instead