2.6.3 Diretiva barrier
O barreira diretiva sincroniza todos os threads em uma equipe. Quando encontrado, cada thread na equipe aguarda até que todos os outros tiverem chegado neste ponto. A sintaxe do barreira diretiva é o seguinte:
#pragma omp barrier new-line
Depois que todos os threads na equipe tiveram a barreira, cada thread na equipe começa a executar as instruções após a diretiva de barreira em paralelo. Observe que, como o barreira diretiva não tem uma instrução de linguagem c como parte de sua sintaxe, há algumas restrições em sua colocação dentro de um programa. Consulte Apêndice C da gramática formal. O exemplo a seguir ilustra essas restrições.
/* ERROR - The barrier directive cannot be the immediate
* substatement of an if statement
*/
if (x!=0)
#pragma omp barrier
...
/* OK - The barrier directive is enclosed in a
* compound statement.
*/
if (x!=0) {
#pragma omp barrier
}