Doing some research on the c++ semantics of volatile recently I came across this rather relevant article again.
I think that there are some important ideas in here that could help us greatly reduce the chance of race conditions where we're using mutexes to encapsulate critical sections. http://www.ddj.com/cpp/184403766 Andrew
