MemoryBarrier()の実装ってx86では単なるxchgなのな。
なんでmfence使ってないのだろう?速度では大差ないってことなのかな。

MemoryBarrier macro (Windows)
http://msdn.microsoft.com/en-us/library/windows/desktop/ms684208

↓はC++11のスレッドライブラリ作った作者の本らしいんだが、pdfで全部公開されてる。
ありがたいのでだけどメモリフェンスは std::memory_order_acquire みたいな一般命令で
隠すようなコードしか書いてない。

C++ Concurrency in Action: Practical Multithreading
http://www.amazon.co.jp/dp/1933988770/