A.26 utilizzando la direttiva del threadprivate

Negli esempi seguenti viene illustrato come utilizzare threadprivate direttiva (parte 2.7.1 nella pagina 23) per consentire a ogni thread di un contatore separato.

Esempio 1:

int counter = 0;
#pragma omp threadprivate(counter)

int sub()
{
    counter++;
    return(counter);
}

Esempio 2:

int sub()
{
    static int counter = 0;
    #pragma omp threadprivate(counter)
    counter++;
    return(counter);
}