1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
|
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 298019 $ -->
<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
-->
|