lock_done Serviço do kernel
Propósito
Desbloqueia um bloqueio complexo.
Sintaxe
#include <sys/lock_def.h> 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.