A.29 Verwenden von Arbeitsteilungskonstrukten innerhalb eines wichtigen Konstrukts

Im folgenden Beispiel wird die Verwendung eines Arbeitsteilungs konstrukts innerhalb eines critical Konstrukts.Dieses Beispiel ist kompatibel, da das Arbeitsteilungs konstrukt und das critical Konstrukt nicht auf denselben parallelen Bereich gebunden werden.

void f()
{
  int i = 1;
  #pragma omp parallel sections
  {
    #pragma omp section
    {
      #pragma omp critical (name)
      {
        #pragma omp parallel
        {
          #pragma omp single
          {
            i++;
          }
        }
      }
    }
  }
}