Linux x86_64IPC & sincronização#273
set_robust_list
Registra a lista de mutexes robustos da thread, permitindo que o kernel os libere se a thread morrer inesperadamente.
Descrição
Suporte de kernel para mutexes 'robustos' do pthreads: se uma thread morre (crash) segurando um mutex, threads esperando por ele seriam bloqueadas para sempre sem esse mecanismo — o kernel percorre a lista registrada e marca os mutexes como 'dono morto' (EOWNERDEAD).
man 2Desde o kernel 2.6.17
Nota
Chamada internamente pelo glibc ao inicializar suporte a mutexes robustos; raramente usada diretamente.
Assinatura
long set_robust_list(struct robust_list_head * head, size_t len);Parâmetros
| Parâmetro | Tipo | Descrição |
|---|---|---|
| head | struct robust_list_head * | Cabeça da lista encadeada de mutexes robustos mantidos pela thread. |
| len | size_t | Tamanho da estrutura apontada por `head` (para compatibilidade). |
Registradores (x86_64)
| Registrador | Papel | Argumento |
|---|---|---|
| rax | número da syscall (chamada) / valor de retorno (após SYSCALL) | — |
| rdi | argumento 1 | headstruct robust_list_head * |
| rsi | argumento 2 | lensize_t |
Valor de retorno
0 em sucesso; -1 em erro, com errno definido.
Códigos de erro (errno)
- EINVAL(22)
- Argumento inválido.
- EPERM(1)
- Operação não permitida (falta de privilégio).