The external link was off and the backslash "\" most of time are used for "scape character". Anyway, regards.
(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);
?>
The external link was off and the backslash "\" most of time are used for "scape character". Anyway, regards.
User should be aware that character '\' is not allowed as part of lock name. The reason why backslash is not allowed is because we are using CreateMutex call as described at http://msdn.microsoft.com/en-us/library/ms682411(VS.85).aspx. As per this article third parameter cannot have '\' character which is the lock name.
This means below code will not work.
<?php
$ret_val = wincache_lock("C:\WINDOWS\Temp/cache");
echo $ret_val . '<br>';
$ret_val = wincache_unlock("C:\WINDOWS\Temp/cache");
echo $ret_val . '<br>';
?>