"Radosavljevic, Branko"
I have a newbie question about using Boost.Thread to invoke a memory fence operation. What are the memory fence guarantees associated with the synchronization concepts in Boost.Thread?
My specific use case involves one writer and several readers. For example, something like:
bool available = false; int value;
// Writer thread value = getValue(); available = true;
// A reader thread while (!available) yield(); doSomething(value);
In other words, the write to available should have release semantics, and the read from available should have acquire semantics. I realize I can use platform-specific commands, but I'd rather not. I assume that if I want to use Boost.Thread, I'll need to use a mutex, but I don't see any discussion of memory fence issues in the documentation.
If you use a mutex to protect "available", then the appropriate semantics will be in place. Anthony -- Anthony Williams Author of C++ Concurrency in Action | http://www.manning.com/williams just::thread C++0x thread library | http://www.stdthread.co.uk Custom Software Development | http://www.justsoftwaresolutions.co.uk Just Software Solutions Ltd, Registered in England, Company Number 5478976. Registered Office: 15 Carrallack Mews, St Just, Cornwall, TR19 7UL, UK