A.29 critical コンストラクト内での動作共有コンストラクトの使用
critical コンストラクト内で work-sharing コンストラクトを使用する例を次に示します。この例は、work-sharing コンストラクトと critical コンストラクトが同じ並行領域にバインドされていないため、準拠しています。
void f()
{
int i = 1;
#pragma omp parallel sections
{
#pragma omp section
{
#pragma omp critical (name)
{
#pragma omp parallel
{
#pragma omp single
{
i++;
}
}
}
}
}
}