Voltar à lista
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âmetroTipoDescrição
headstruct robust_list_head *Cabeça da lista encadeada de mutexes robustos mantidos pela thread.
lensize_tTamanho da estrutura apontada por `head` (para compatibilidade).

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1headstruct robust_list_head *
rsiargumento 2lensize_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).

Relacionadas