critical Directive
- Updated2023-02-21
- 1 minute(s) read
critical Directive
Specifies that the structured block is restricted to execution on a single thread at a time.
Binding thread set: all threads
Format
#pragma omp critical [(name)] newline
structured block
Example
int dequeue(float *a);
void work(int i, float *a);
void a13(float *x, float *y)
{
int ix_next, iy_next;
#pragma omp parallel shared(x, y) private(ix_next, iy_next)
{
#pragma omp critical (xaxis)
ix_next = dequeue(x);
work(ix_next, x);
#pragma omp critical (yaxis)
iy_next = dequeue(y);
work(iy_next, y);
}
}