File: wincache_lock.xml

package info (click to toggle)
php-doc 20100521-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze, wheezy
  • size: 59,992 kB
  • ctags: 4,085
  • sloc: xml: 796,833; php: 21,338; cpp: 500; sh: 117; makefile: 58; awk: 28
file content (123 lines) | stat: -rw-r--r-- 4,064 bytes parent folder | download
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
114
115
116
117
118
119
120
121
122
123
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision: 298245 $ -->
<refentry xml:id="function.wincache-lock" xmlns="http://docbook.org/ns/docbook">
 <refnamediv>
  <refname>wincache_lock</refname>
  <refpurpose>
   Acquires an exclusive lock on a given key
  </refpurpose>
 </refnamediv>
 <refsect1 role="description">
  &reftitle.description;
  <methodsynopsis>
   <type>bool</type><methodname>wincache_lock</methodname>
   <methodparam><type>string</type><parameter>key</parameter></methodparam>
   <methodparam choice="opt"><type>bool</type><parameter>isglobal</parameter><initializer>false</initializer></methodparam>
  </methodsynopsis>
  <para>
   Obtains an exclusive lock on a given key. The execution of the current script will be blocked until the 
   lock can be obtained. Once the lock is obtained, the other scripts that try to request the lock by using the same 
   key will be blocked, until the current script releases the lock by using <function>wincache_unlock</function>.
  </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 get the lock on.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>isglobal</parameter></term>
     <listitem>
      <para>
       Controls whether the scope of the lock is system-wide or local. Local locks are scoped to the application pool 
       in IIS FastCGI case or to all php processes that have the same parent process identifier.
      </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_lock</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_unlock</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
-->