Hi! Am Mittwoch, den 21.11.2007, 22:39 +0000 schrieb Sohail Somani:
Why not do this:
void threadB() { g_value = do_my_expensive_calc(); barrier2.wait(); // start waiting *after* calculation is done }
void threadA() { barrier2.wait(); // now can read value do_something_with_value(g_value) }
Then thread B can calculate without waiting for thread A but neither thread will exit until they both reach the barrier.
A well I guess I wasn't expressing good enough. I look for a nice solution where thread B is completely independent of A. But A waits for B doing some work. e.g. void threadB () { do_something (); g_value = do_my_expensive_calc (); inform_thread_A (); do_something_else (); } So a barrier won't work, since it synchronizes both threads. Thanks, Fabian