lock_done Serviço do kernel

Propósito

Desbloqueia um bloqueio complexo.

Sintaxe

#include <sys/lock_def.h>
void lock_done ( lock_addr)
complex_lock_t lock_addr;

Parâmetro

Item Descrição
lock_addr Especifica o endereço da palavra de bloqueio para desbloquear.

Descrição

Os serviços kernel lock_done desbloqueam um bloqueio complexo. A thread do kernel de chamada deve manter o bloqueio tanto no modo de leitura compartilhada ou no modo de gravação exclusivo. Se um ou mais threads de kernel estiverem esperando para adquirir o bloqueio no modo de gravação exclusiva, um desses threads de kernel (aquele com maior prioridade) é tornado runnable e pode concorrer para o bloqueio. Caso contrário, quaisquer threads de kernel que estejam esperando para adquirir o bloqueio no modo de leitura compartilhada são tornadas passíveis de runnable. Se houvesse pelo menos um fio de kernel esperando o bloqueio, a prioridade da thread do kernel de chamada é recomputada.

Se o bloqueio for realizado recorrentemente, ele não é realmente liberado até que o serviço de kernel lock_done tenha sido chamado uma vez para cada vez que o bloqueio foi bloqueado.

Ambiente de Execução

O serviço kernel lock_done pode ser chamado a partir do ambiente de processo apenas.

Valores De Retorno

O serviço kernel lock_done não tem valores de retorno.