wincache_lock

(PECL wincache >= 1.1.0)

wincache_lock Adquire um bloqueio exclusivo em uma determinada chave

Descrição

wincache_lock(string $key, bool $isglobal = false): bool

Obtém um bloqueio exclusivo em uma determinada chave. A execução do script atual será bloqueada até que o bloqueio seja obtido. Uma vez obtido o bloqueio, os outros scripts que tentarem solicitá-lo usando a mesma chave serão bloqueados, até que o script atual libere o bloqueio usando wincache_unlock().

Aviso

O uso de wincache_lock() e wincache_unlock() pode causar deadlocks ao executar scripts PHP em um ambiente multiprocesso como o FastCGI. Não use essas funções a menos que tenha absoluta certeza de que precisa usá-las. Para a maioria das operações no cache do usuário, não é necessário usar essas funções.

Parâmetros

key

Nome da chave no cache para obter o bloqueio.

isglobal

Controla se o escopo do bloqueio é de todo o sistema ou local. Os bloqueios locais têm como escopo o pool de aplicativos no caso do IIS FastCGI ou todos os processos PHP que possuem o mesmo identificador de processo pai.

Valor Retornado

Retorna true em caso de sucesso ou false em caso de falha.

Exemplos

Exemplo #1 Usando wincache_lock()

<?php
$fp
= fopen("/tmp/lock.txt", "r+");
if (
wincache_lock(“lock_txt_lock”)) { // faz um bloqueio exclusivo
ftruncate($fp, 0); // trunca o arquivo
fwrite($fp, "Escreve algo aqui\n");
wincache_unlock(“lock_txt_lock”); // libera o bloqueio
} else {
echo
"Não foi possível obter o bloqueio!";
}
fclose($fp);
?>

Veja Também