Partager via


3.2 Fonctions de verrouillage

les fonctions décrites de cette section manipulent des verrous utilisés pour la synchronisation.

pour les fonctions suivantes, la variable de verrou doit avoir le type omp_lock_t. Cette variable doit uniquement accessible via ces fonctions. Toutes les fonctions de verrou requièrent un argument qui a un pointeur vers le type d' omp_lock_t .

  • la fonction d' omp_init_lock initialise un verrou simple.

  • la fonction d' omp_destroy_lock supprime un verrou simple.

  • la fonction d' omp_set_lock attend jusqu'à ce qu'un verrou simple soit disponible.

  • la fonction d' omp_unset_lock libère un verrou simple.

  • les tests de fonction d' omp_test_lock un verrou simple.

pour les fonctions suivantes, la variable de verrou doit avoir le type omp_nest_lock_t. Cette variable doit uniquement accessible via ces fonctions. Toutes les fonctions de verrou empilables requièrent un argument qui a un pointeur vers le type d' omp_nest_lock_t .

  • la fonction d' omp_init_nest_lock initialise un verrou empilable.

  • la fonction d' omp_destroy_nest_lock supprime un verrou empilable.

  • la fonction d' omp_set_nest_lock attend jusqu'à ce qu'un verrou empilable soit disponible.

  • la fonction d' omp_unset_nest_lock libère un verrou empilable.

  • les tests de fonction d' omp_test_nest_lock un verrou empilable.

Les fonctions de verrou d'OpenMP accède à la variable de verrou de telle sorte qu'elles toujours lisent et mettent à jour la plupart de valeur actuelle de la variable de verrouillage. Par conséquent, il n'est pas nécessaire qu'un programme d'OpenMP inclure les directives explicites de vide pour garantir que la valeur de variable de verrou est cohérente entre les différents threads. (Il peut exister un besoin des directives de vide de mettre les valeurs d'autres variables cohérentes.)