int main() { char a[50]; scanf("%s",a); func2b(a); printf("%s\n",a); return 0; }
void Test2() { Harness::SpinBarrier barr(2); TestFunc2a func2a(barr); TestTask2a t2a(0, func2a); TestFunc2b func2b(barr, t2a); NativeParallelForTask<int,TestFunc2b> t2b(1, func2b); FinishedTasks = 0; t2a.start(); t2b.start(); Harness::Sleep(1000); // wait a second :) ASSERT( FinishedTasks==2, "Threads appear to deadlock" ); t2b.wait_to_finish(); // t2a is monitored by t2b }
void Test2() { Harness::SpinBarrier barr(2); TestFunc2a func2a(barr); TestTask2a t2a(0, func2a); TestFunc2b func2b(barr, t2a); #if USE_LITHE tbb::lithe::scheduler sched; lithe_sched_enter(&sched); #endif NativeParallelForTask<int,TestFunc2b> t2b(1, func2b); FinishedTasks = 0; t2a.start(); t2b.start(); #if USE_LITHE sched.joinAll(); lithe_sched_exit(); #else Harness::Sleep(1000); // wait a second :) #endif ASSERT( FinishedTasks==2, "Threads appear to deadlock" ); t2b.wait_to_finish(); // t2a is monitored by t2b }