(PECL wincache >= 1.1.0)
wincache_lock — Adquire um bloqueio exclusivo em uma determinada chave
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().
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.
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.
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);
?>