pthread_getconcurrency ou pthread_setconcurrency Subroutine

Propósito

Obtém ou estabelece nível de simultaneidade.

Biblioteca

Biblioteca de encadeamentos (libthreads.a)

Sintaxe

#include <pthread.h>

int pthread_getconcurrency (void); 

int pthread_setconcurrency (new_level)
int new_level;

Descrição

O subroutine pthread_setconcurrency permite que um aplicativo informe a implementação de threads de seu nível de simultaneidade desejado, new_level. O nível real de simultaneidade proporcionado pela implementação como resultado desta chamada de função é não especificado.

Se new_level for zero, ele faz com que a implementação mantenha o nível de simultaneidade a seu critério como se pthread_setconcurrency nunca foi chamado.

O subroutine pthread_getconcurrency retorna o valor configurado por uma chamada anterior para a subroutine pthread_setconcurrency . Se o subroutine pthread_setconcurrency não foi chamado anteriormente, esta função retorna zero para indicar que a implementação está mantendo o nível de simultaneidade.

Quando um aplicativo chama pthread_setconcurrency, ele está informando a implementação de seu nível de simultaneidade desejado. A implementação usa isso como uma dica, não uma exigência.

O uso dessas subroutines altera o estado da simultaneidade subjacente sobre o qual o aplicativo depende. Os desenvolvedores de bibliotecas são aconselhados a não utilizar os subroutines pthread_getconcurrency e pthread_setconcurrency desde que seu uso possa entrar em conflito com um uso de aplicativos dessas funções.

Parâmetros

Item Descrição
novo_nível Especifica o valor do nível de simultaneidade.

Valor de Retorno

Se bem-sucedido, o subroutine pthread_setconcurrency retorna zero. Caso contrário, um número de erro é retornado para indicar o erro.

O subroutine pthread_getconcurrency sempre retorna o nível de simultaneidade configurado por uma chamada anterior para pthread_setconcurrency. Se o subroutine pthread_setconcurrency nunca foi chamado, pthread_getconcurrency retorna zero.

Códigos De Erro

A subroutine pthread_setconcurrency falhará se:

Item Descrição
EINVAL O valor especificado por new_level é negativo.
EAGAIN O valor específico por new_level faria com que um recurso do sistema fosse excedido.