$include_dir="/home/hyper-archives/boost-users/include"; include("$include_dir/msg-header.inc") ?>
From: Fabian Sturm (f_at_[hidden])
Date: 2007-11-21 19:56:59
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