<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="function.wincache-unlock" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>wincache_unlock</refname>
  <refpurpose>
   Releases an exclusive lock on a given key
  </refpurpose>
 </refnamediv>
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>bool</type><methodname>wincache_unlock</methodname>
   <methodparam><type>string</type><parameter>key</parameter></methodparam>
  </methodsynopsis>
  <para>
   Releases an exclusive lock that was obtained on a given key by using <function>wincache_lock</function>. 
   If any other process was blocked waiting for the lock on this key, that process will be able to obtain 
   the lock.
  </para>
  <warning>
   <simpara>
    Using of the <function>wincache_lock</function> and <function>wincache_unlock</function> can cause deadlocks when 
    executing PHP scripts in a multi-process environment like FastCGI. Do not use these functions unless you are 
    absolutely sure you need to use them. For the majority of the operations on the user cache it is not necessary to
    use these functions.
   </simpara>
  </warning>
 </refsect1>
 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>key</parameter></term>
     <listitem>
      <para>
       Name of the key in the cache to release the lock on.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>
 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   &return.success;
  </para>
 </refsect1>
 <refsect1 role="examples">
  &reftitle.examples;
  <para>
   <example>
    <title>Using <function>wincache_unlock</function></title>
    <programlisting role="php">
<![CDATA[
<?php
$fp = fopen("/tmp/lock.txt", "r+");
if (wincache_lock(“lock_txt_lock”)) { // do an exclusive lock
    ftruncate($fp, 0); // truncate file
    fwrite($fp, "Write something here\n");
    wincache_unlock(“lock_txt_lock”); // release the lock
} else {
    echo "Couldn't get the lock!";
}
fclose($fp);
?>
]]>
    </programlisting>
   </example>
  </para>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>wincache_lock</function></member>
    <member><function>wincache_ucache_set</function></member>
    <member><function>wincache_ucache_get</function></member>
    <member><function>wincache_ucache_delete</function></member>
    <member><function>wincache_ucache_clear</function></member>
    <member><function>wincache_ucache_exists</function></member>
    <member><function>wincache_ucache_meminfo</function></member>
    <member><function>wincache_ucache_info</function></member>
    <member><function>wincache_scache_info</function></member>
   </simplelist>
  </para>
 </refsect1>

</refentry>

<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
