A.5 za pomocą dyrektywy krytyczne
Poniższy przykład zawiera kilka critical dyrektyw (sekcji 2.6.2 na stronie 18).W przykładzie zilustrowano modelu usługi kolejkowania wiadomości, dequeued i pracy na zadania.Aby zabezpieczyć się przed wieloma wątkami usuwania tego samego zadania, należy w operacji dequeuing critical sekcji.Ponieważ dwie kolejki w tym przykładzie są niezależne, są chronione przez critical dyrektyw pod różnymi nazwami, xaxis i yaxis.
#pragma omp parallel shared(x, y) private(x_next, y_next)
{
#pragma omp critical ( xaxis )
x_next = dequeue(x);
work(x_next);
#pragma omp critical ( yaxis )
y_next = dequeue(y);
work(y_next);
}