
19 Sep
2011
19 Sep
'11
3:13 p.m.
On Mon, Sep 19, 2011 at 9:12 AM, Samvel Khalatyan
Hi Mark, You may use conditional variables in threads. Perform the calculation in each thread, acquire lock and then wait for conditional variable to be notified from the main thread. The above steps should be put into some loop. I use this technique in my analysis: loop example: http://goo.gl/mi6rr conditional variable use: http://goo.gl/8BVKv my condition class: http://goo.gl/sVS7y [separate repository]
You need to be careful with condition variables, as they typically edge-triggered rather than level-triggered. If they are edge-triggered and the calculation completes and signals before anything is actually waiting on the CV then the waiter will not be signaled.