Voltar à lista
Linux x86_64Sinais#234

tgkill

Envia um sinal a uma thread específica dentro de um grupo de threads específico.

Descrição

Versão segura de `tkill`: exigir tanto o `tgid` (PID do processo) quanto o `tid` da thread elimina a condição de corrida em que a thread alvo termina e seu TID é reaproveitado por outra thread antes do sinal chegar. É o que `pthread_kill(3)` usa internamente.

man 2Desde o kernel 2.5.75

Assinatura

int tgkill(int tgid, int tid, int sig);

Parâmetros

ParâmetroTipoDescrição
tgidintPID do processo (thread group) ao qual a thread pertence.
tidintIdentificador da thread alvo dentro do grupo.
sigintNúmero do sinal a enviar.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1tgidint
rsiargumento 2tidint
rdxargumento 3sigint

Valor de retorno

0 em sucesso; -1 em erro, com errno definido.

Códigos de erro (errno)

EAGAIN(11)
Recurso temporariamente indisponível (tente novamente); também conhecido como EWOULDBLOCK.
EINVAL(22)
Argumento inválido.
EPERM(1)
Operação não permitida (falta de privilégio).
ESRCH(3)
Processo inexistente.

Relacionadas