Original Post
Hiya, I'm using the InterlockedCompareExchangePointer() function on Windows for some lock-free data structures. There are a couple of things in the documentation I don't fully understand. Can anyone tell me the difference between Acquire and Release semantics, and when each should be used? MSDN says they should be used in performance-critical applications. Also, what is the difference between a function and a compiler intrinsic? Many thanks for any help [smile] Cheers, James