Voltar à lista
Linux x86_64IPC & sincronização#220

semtimedop

Como semop, mas com um timeout para o bloqueio.

Descrição

Evita bloquear indefinidamente esperando um semáforo System V ficar disponível.

Header: sys/sem.hman 2Desde o kernel 2.6

Assinatura

int semtimedop(
    int semid,
    struct sembuf * sops,
    size_t nsops,
    const struct timespec * timeout
);

Parâmetros

ParâmetroTipoDescrição
semidintIdentificador do conjunto de semáforos.
sopsstruct sembuf *Array de operações a executar.
nsopssize_tNúmero de operações em `sops`.
timeoutconst struct timespec *Tempo máximo de bloqueio, ou NULL para bloquear indefinidamente.

Registradores (x86_64)

RegistradorPapelArgumento
raxnúmero da syscall (chamada) / valor de retorno (após SYSCALL)
rdiargumento 1semidint
rsiargumento 2sopsstruct sembuf *
rdxargumento 3nsopssize_t
r10argumento 4timeoutconst struct timespec *

Valor de retorno

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

Códigos de erro (errno)

E2BIG(7)
Lista de argumentos grande demais.
EAGAIN(11)
Recurso temporariamente indisponível (tente novamente); também conhecido como EWOULDBLOCK.
EIDRM(43)
Identificador removido (IPC System V).
EINTR(4)
Chamada interrompida por um sinal.
EINVAL(22)
Argumento inválido.

Relacionadas