sub-rotina thread_post_many
Propósito
Posta uma ou mais threads de uma conclusão de evento.
Biblioteca
Biblioteca C padrão (libc.a)
Sintaxe
Descrição
A subroutine thread_post_many posta uma ou mais threads da ocorrência do evento. O número de threads a serem postadas é especificado pelo valor do parâmetro nthreads , enquanto que o parâmetro tidp aponta para uma matriz de IDs IDs de threads que precisam ser postadas. O subroutine funciona exatamente como o subroutine thread_post mas pode ser usado para postar para várias threads ao mesmo tempo.
Um máximo de 512 threads pode ser postado em uma chamada para a subroutine thread_post_many .
Um endereço opcional para um campo ID de thread pode ser passado no parâmetro erridp . Esse campo normalmente é ignorado pelo kernel a menos que a subroutine falhe porque o processo de chamada não tem permissões para postar para qualquer uma das threads especificadas. Neste caso, o kernel posta todas as threads na matriz apontada pelo parâmetro tidp até o primeiro encadeamento com falha e preenche o parâmetro erridp com o ID do thread com falha.
Parâmetros
| Item | Descrição |
|---|---|
| nthreads | Especifica o número de threads a serem postadas. |
| tidp | Especifica o endereço de uma matriz de IDs de encadeamento correspondente à lista de threads a serem postadas. |
| erridp | Ou NULL ou especifica o ponteiro para uma variável de ID de thread na qual o kernel retornará o ID da thread da primeira thread com falha quando um errno de EPERM for configurado. |
Valores De Retorno
Na conclusão bem-sucedida, a subroutine thread_post_many retorna um valor de 0. Se não for bem-sucedido, um valor de -1 é retornado e a variável global errno é configurada para indicar o erro.
Códigos De Erro
| Item | Descrição |
|---|---|
| ESRCH | Nenhum dos threads indicados é existente ou eles todos exitou ou estão saindo. |
| EPERM | O ID do usuário real ou efetivo não corresponde ao ID de usuário real ou efetivo de uma ou mais threads sendo postadas, ou então o processo de chamada não tem autoridade de usuário root. |
| EFAULT | O parâmetro tidp aponta para um local fora do espaço de endereço do processo. |
| EINVAL | Um valor negativo ou um valor maior que 512 foi especificado no parâmetro nthreads . |