Linux x86_64Sinais#297
rt_tgsigqueueinfo
Como rt_sigqueueinfo, mas mirando uma thread específica dentro de um grupo de threads.
Descrição
Combina a granularidade de `tgkill` (thread específica) com a capacidade de `rt_sigqueueinfo` de anexar dados via siginfo_t — usada internamente pela implementação de sinais POSIX real-time do glibc.
man 2Desde o kernel 2.6.31
Assinatura
int rt_tgsigqueueinfo(pid_t tgid, pid_t tid, int sig, siginfo_t * info);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| tgid | pid_t | PID do processo (thread group) alvo. |
| tid | pid_t | Identificador da thread alvo dentro do grupo. |
| sig | int | Número do sinal a enviar. |
| info | siginfo_t * | Dados adicionais anexados ao sinal. |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | tgidpid_t |
| rsi | argumento 2 | tidpid_t |
| rdx | argumento 3 | sigint |
| r10 | argumento 4 | infosiginfo_t * |
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.