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. |