vacío (OpenMP)
especifica que todos los subprocesos tienen la misma vista de memoria para todos los objetos compartidos.
#pragma omp flush [(var)]
Comentarios
donde
- var (opcional)
Una lista separada por comas de variables que representan objetos desea sincronizar.Si var no se especifica, se vacía toda la memoria.
Comentarios
la directiva de vaciado no admite ninguna cláusula de OpenMP.
Para obtener más información, vea directiva alineado 2.6.5.
Ejemplo
// omp_flush.cpp
// compile with: /openmp
#include <stdio.h>
#include <omp.h>
void read(int *data) {
printf_s("read data\n");
*data = 1;
}
void process(int *data) {
printf_s("process data\n");
(*data)++;
}
int main() {
int data;
int flag;
flag = 0;
#pragma omp parallel sections num_threads(2)
{
#pragma omp section
{
printf_s("Thread %d: ", omp_get_thread_num( ));
read(&data);
#pragma omp flush(data)
flag = 1;
#pragma omp flush(flag)
// Do more work.
}
#pragma omp section
{
while (!flag) {
#pragma omp flush(flag)
}
#pragma omp flush(data)
printf_s("Thread %d: ", omp_get_thread_num( ));
process(&data);
printf_s("data = %d\n", data);
}
}
}