Partilhar via


3.2 Funções Lock

As funções descritas nesta seção manipulam bloqueios usados para sincronização.

Para as seguintes funções, a variável de bloqueio deve ser do tipo omp_lock_t. Essa variável só deve ser acessada através dessas funções. Todas as funções de bloqueio exigem um argumento que tem um ponteiro para omp_lock_t tipo.

  • O omp_init_lock função inicializa um bloqueio simple.

  • O omp_destroy_lock função remove um bloqueio simple.

  • O omp_set_lock função aguarda até que um bloqueio simple esteja disponível.

  • O omp_unset_lock função libera um bloqueio simple.

  • O omp_test_lock função testa um bloqueio simple.

Para as seguintes funções, a variável de bloqueio deve ser do tipo omp_nest_lock_t. Essa variável só deve ser acessada através dessas funções. Todas as funções de bloqueio nestable requerem um argumento que tem um ponteiro para omp_nest_lock_t tipo.

  • O omp_init_nest_lock função inicializa um bloqueio de nestable.

  • O omp_destroy_nest_lock função remove um bloqueio de nestable.

  • O omp_set_nest_lock função aguarda até que um bloqueio de nestable esteja disponível.

  • O omp_unset_nest_lock função libera um bloqueio de nestable.

  • O omp_test_nest_lock função testa um bloqueio de nestable.

As funções de bloqueio do OpenMP acessar a variável de bloqueio de tal forma que eles sempre ler e atualizar o valor mais atual da variável de bloqueio. Portanto, não é necessário para que um programa OpenMP incluem explícita liberar diretivas para garantir que o valor da variável de bloqueio seja consistente entre diferentes segmentos. (Pode haver a necessidade de liberar diretivas para tornar os valores de outras variáveis consistente.)