現在のタスクが開始してから生成された子タスクの完了まで待機するように指定します。
omp taskwait プラグマは、現在のタスクが開始してから生成された子タスクの完了時点で待機するように指定します。 taskwait 領域には、現在のタスク領域の暗黙のタスク・スケジューリング・ポイントが含まれます。 現在のタスク領域は、taskwait 領域の前に生成された子タスクの実行がすべて完了するまで、タスク・スケジューリング・ポイントで一時停止します。
次の例では、taskwait プラグマにより、Task 3 は Task 4 が完了するまで待機します。 Task 2 や Task 1 の完了は待機しません。
#pragma omp task // Task 1
{ ...
#pragma omp task // Task 2
{ do_work1(); }
#pragma omp task // Task 3
{ ...
#pragma omp task // Task 4
{ do_work2(); }
...
}
#pragma omp taskwait
...
}
}