ref.sem: new doc style

git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@237707 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Mehdi Achour 2007-06-15 00:16:48 +00:00
parent 1c96826f4b
commit d9511bcb21
17 changed files with 914 additions and 267 deletions

View file

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.6 $ -->
<!-- splitted from ./en/functions/sem.xml, last change in rev 1.2 -->
<!-- $Revision: 1.7 $ -->
<refentry id='function.ftok'>
<refnamediv>
<refname>ftok</refname>
<refpurpose>Convert a pathname and a project identifier to a System V IPC key</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>ftok</methodname>
<methodparam><type>string</type><parameter>pathname</parameter></methodparam>
@ -15,20 +15,54 @@
</methodsynopsis>
<para>
The function converts the <parameter>pathname</parameter> of an existing
accessible file and a project identifier (<parameter>proj</parameter>)
into a
accessible file and a project identifier into an
<literal>integer</literal> for use with for example
<function>shmop_open</function> and other System V IPC keys. The
<parameter>proj</parameter> parameter must be a one character string.
<function>shmop_open</function> and other System V IPC keys.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>pathname</parameter></term>
<listitem>
<para>
Path to an accessible file.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>proj</parameter></term>
<listitem>
<para>
Project identifier. This must be a one character string.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
On success the return value will be the created key value, otherwise
<literal>-1</literal> is returned.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
See also <function>shmop_open</function> and <function>sem_get</function>.
<simplelist>
<member><function>shmop_open</function></member>
<member><function>sem_get</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.4 $ -->
<!-- $Revision: 1.5 $ -->
<refentry id="function.msg-get-queue">
<refnamediv>
<refname>msg_get_queue</refname>
<refpurpose>Create or attach to a message queue</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>msg_get_queue</methodname>
<methodparam><type>int</type><parameter>key</parameter></methodparam>
@ -16,21 +17,58 @@
<function>msg_get_queue</function> returns an id that can be used to
access the System V message queue with the given
<parameter>key</parameter>. The first call creates the message queue with
the optional <parameter>perms</parameter> (default: 0666).
the optional <parameter>perms</parameter>.
A second call to <function>msg_get_queue</function> for the same
<parameter>key</parameter> will return a different message queue
identifier, but both identifiers access the same underlying message
queue.
If the message queue already exists, the <parameter>perms</parameter>
will be ignored.
</para>
<para>
See also <function>msg_remove_queue</function>,
<function>msg_receive</function>, <function>msg_send</function>,
<function>msg_stat_queue</function> and
<function>msg_set_queue</function>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>key</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>perms</parameter></term>
<listitem>
<para>
Queue permissions. Default to 0666. If the message queue already
exists, the <parameter>perms</parameter> will be ignored.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns an id that can be used to access the System V message queue.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>msg_remove_queue</function></member>
<member><function>msg_receive</function></member>
<member><function>msg_send</function></member>
<member><function>msg_stat_queue</function></member>
<member><function>msg_set_queue</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.9 $ -->
<!-- $Revision: 1.10 $ -->
<refentry id="function.msg-receive">
<refnamediv>
<refname>msg_receive</refname>
<refpurpose>Receive a message from a message queue</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>msg_receive</methodname>
<methodparam><type>resource</type><parameter>queue</parameter></methodparam>
@ -22,73 +23,140 @@
<function>msg_receive</function> will receive the first message from the
specified <parameter>queue</parameter> of the type specified by
<parameter>desiredmsgtype</parameter>.
The type of the message that was received will be stored in
<parameter>msgtype</parameter>.
The maximum size of message to be accepted is specified by the
<parameter>maxsize</parameter>; if the message in the queue is larger
than this size the function will fail (unless you set
<parameter>flags</parameter> as described below).
The received message will be stored in <parameter>message</parameter>,
unless there were errors receiving the message, in which case the
optional <parameter>errorcode</parameter> will be set to the value of the
system errno variable to help you identify the cause.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
If <parameter>desiredmsgtype</parameter> is 0, the message from the front
of the queue is returned. If <parameter>desiredmsgtype</parameter> is
greater than 0, then the first message of that type is returned.
If <parameter>desiredmsgtype</parameter> is less than 0, the first
message on the queue with the lowest type less than or equal to the
absolute value of <parameter>desiredmsgtype</parameter> will be read.
If no messages match the criteria, your script will wait until a suitable
message arrives on the queue. You can prevent the script from blocking
by specifying <constant>MSG_IPC_NOWAIT</constant> in the
<parameter>flags</parameter> parameter.
<variablelist>
<varlistentry>
<term><parameter>queue</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>desiredmsgtype</parameter></term>
<listitem>
<para>
If <parameter>desiredmsgtype</parameter> is 0, the message from the front
of the queue is returned. If <parameter>desiredmsgtype</parameter> is
greater than 0, then the first message of that type is returned.
If <parameter>desiredmsgtype</parameter> is less than 0, the first
message on the queue with the lowest type less than or equal to the
absolute value of <parameter>desiredmsgtype</parameter> will be read.
If no messages match the criteria, your script will wait until a suitable
message arrives on the queue. You can prevent the script from blocking
by specifying <constant>MSG_IPC_NOWAIT</constant> in the
<parameter>flags</parameter> parameter.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>msgtype</parameter></term>
<listitem>
<para>
The type of the message that was received will be stored in this
parameter.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>maxsize</parameter></term>
<listitem>
<para>
The maximum size of message to be accepted is specified by the
<parameter>maxsize</parameter>; if the message in the queue is larger
than this size the function will fail (unless you set
<parameter>flags</parameter> as described below).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>message</parameter></term>
<listitem>
<para>
The received message will be stored in <parameter>message</parameter>,
unless there were errors receiving the message.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>unserialize</parameter></term>
<listitem>
<para>
<parameter>unserialize</parameter> defaults to &true;; if it is set to
&true;, the message is treated as though it was serialized using the
same mechanism as the session module. The message will be unserialized
and then returned to your script. This allows you to easily receive
arrays or complex object structures from other PHP scripts, or if you
are using the WDDX serializer, from any WDDX compatible source.
</para>
<para>
If <parameter>unserialize</parameter> is &false;, the message will be
returned as a binary-safe string.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>flags</parameter></term>
<listitem>
<para>
The optional <parameter>flags</parameter> allows you to pass flags to the
low-level msgrcv system call. It defaults to 0, but you may specify one
or more of the following values (by adding or ORing them together).
<table>
<title>Flag values for msg_receive</title>
<tgroup cols="2">
<tbody>
<row>
<entry><constant>MSG_IPC_NOWAIT</constant></entry>
<entry>If there are no messages of the
<parameter>desiredmsgtype</parameter>, return immediately and do not
wait. The function will fail and return an integer value
corresponding to <constant>MSG_ENOMSG</constant>.
</entry>
</row>
<row>
<entry><constant>MSG_EXCEPT</constant></entry>
<entry>Using this flag in combination with a
<parameter>desiredmsgtype</parameter> greater than 0 will cause the
function to receive the first message that is not equal to
<parameter>desiredmsgtype</parameter>.</entry>
</row>
<row>
<entry><constant>MSG_NOERROR</constant></entry>
<entry>
If the message is longer than <parameter>maxsize</parameter>,
setting this flag will truncate the message to
<parameter>maxsize</parameter> and will not signal an error.
</entry>
</row>
</tbody>
</tgroup>
</table>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>errorcode</parameter></term>
<listitem>
<para>
If the function fails, the optional <parameter>errorcode</parameter>
will be set to the value of the system errno variable.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<parameter>unserialize</parameter> defaults to &true;; if it is set to
&true;, the message is treated as though it was serialized using the same
mechanism as the session module. The message will be unserialized and
then returned to your script. This allows you to easily receive arrays
or complex object structures from other PHP scripts, or if you are using
the WDDX serializer, from any WDDX compatible source.
If <parameter>unserialize</parameter> is &false;, the message will be
returned as a binary-safe string.
</para>
<para>
The optional <parameter>flags</parameter> allows you to pass flags to the
low-level msgrcv system call. It defaults to 0, but you may specify one
or more of the following values (by adding or ORing them together).
<table>
<title>Flag values for msg_receive</title>
<tgroup cols="2">
<tbody>
<row>
<entry><constant>MSG_IPC_NOWAIT</constant></entry>
<entry>If there are no messages of the
<parameter>desiredmsgtype</parameter>, return immediately and do not
wait. The function will fail and return an integer value
corresponding to <constant>MSG_ENOMSG</constant>.
</entry>
</row>
<row>
<entry><constant>MSG_EXCEPT</constant></entry>
<entry>Using this flag in combination with a
<parameter>desiredmsgtype</parameter> greater than 0 will cause the
function to receive the first message that is not equal to
<parameter>desiredmsgtype</parameter>.</entry>
</row>
<row>
<entry><constant>MSG_NOERROR</constant></entry>
<entry>
If the message is longer than <parameter>maxsize</parameter>,
setting this flag will truncate the message to
<parameter>maxsize</parameter> and will not signal an error.
</entry>
</row>
</tbody>
</tgroup>
</table>
&return.success;
</para>
<para>
Upon successful completion the message queue data structure is updated as
@ -96,19 +164,20 @@
calling process, <literal>msg_qnum</literal> is decremented by 1 and
<literal>msg_rtime</literal> is set to the current time.
</para>
<para>
<function>msg_receive</function> returns &true; on success or &false; on
failure. If the function fails, the optional
<parameter>errorcode</parameter> will be set to the value of the system
errno variable.
</para>
<para>
See also <function>msg_remove_queue</function>,
<function>msg_send</function>,
<function>msg_stat_queue</function> and
<function>msg_set_queue</function>.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>msg_remove_queue</function></member>
<member><function>msg_send</function></member>
<member><function>msg_stat_queue</function></member>
<member><function>msg_set_queue</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.5 $ -->
<!-- $Revision: 1.6 $ -->
<refentry id="function.msg-remove-queue">
<refnamediv>
<refname>msg_remove_queue</refname>
<refpurpose>Destroy a message queue</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>msg_remove_queue</methodname>
<methodparam><type>resource</type><parameter>queue</parameter></methodparam>
@ -17,13 +18,42 @@
processes have finished working with the message queue and you need to
release the system resources held by it.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
See also <function>msg_get_queue</function>,
<function>msg_receive</function>,
<function>msg_stat_queue</function> and
<function>msg_set_queue</function>.
<variablelist>
<varlistentry>
<term><parameter>queue</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>msg_get_queue</function></member>
<member><function>msg_receive</function></member>
<member><function>msg_stat_queue</function></member>
<member><function>msg_set_queue</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.8 $ -->
<!-- $Revision: 1.9 $ -->
<refentry id="function.msg-send">
<refnamediv>
<refname>msg_send</refname>
<refpurpose>Send a message to a message queue</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>msg_send</methodname>
<methodparam><type>resource</type><parameter>queue</parameter></methodparam>
@ -21,25 +22,79 @@
<parameter>msgtype</parameter> (which MUST be greater than 0) to
the message queue specified by <parameter>queue</parameter>.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
If the message is too large to fit in the queue, your script will wait
until another process reads messages from the queue and frees enough
space for your message to be sent.
This is called blocking; you can prevent blocking by setting the
optional <parameter>blocking</parameter> parameter to &false;, in which
case <function>msg_send</function> will immediately return &false; if the
message is too big for the queue, and set the optional
<parameter>errorcode</parameter> to <constant>MSG_EAGAIN</constant>, indicating that you should
try to send your message again a little later on.
<variablelist>
<varlistentry>
<term><parameter>queue</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>msgtype</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>message</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>serialize</parameter></term>
<listitem>
<para>
The optional <parameter>serialize</parameter> controls how the
<parameter>message</parameter> is sent. <parameter>serialize</parameter>
defaults to &true; which means that the <parameter>message</parameter> is
serialized using the same mechanism as the session module before being
sent to the queue. This allows complex arrays and objects to be sent to
other PHP scripts, or if you are using the WDDX serializer, to any WDDX
compatible client.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>blocking</parameter></term>
<listitem>
<para>
If the message is too large to fit in the queue, your script will wait
until another process reads messages from the queue and frees enough
space for your message to be sent.
This is called blocking; you can prevent blocking by setting the
optional <parameter>blocking</parameter> parameter to &false;, in which
case <function>msg_send</function> will immediately return &false; if the
message is too big for the queue, and set the optional
<parameter>errorcode</parameter> to <constant>MSG_EAGAIN</constant>,
indicating that you should try to send your message again a little
later on.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>errorcode</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
The optional <parameter>serialize</parameter> controls how the
<parameter>message</parameter> is sent. <parameter>serialize</parameter>
defaults to &true; which means that the <parameter>message</parameter> is
serialized using the same mechanism as the session module before being
sent to the queue. This allows complex arrays and objects to be sent to
other PHP scripts, or if you are using the WDDX serializer, to any WDDX
compatible client.
&return.success;
</para>
<para>
Upon successful completion the message queue data structure is updated as
@ -47,14 +102,22 @@
calling process, <parameter>msg_qnum</parameter> is incremented by 1 and
<parameter>msg_stime</parameter> is set to the current time.
</para>
<para>
See also <function>msg_remove_queue</function>,
<function>msg_receive</function>,
<function>msg_stat_queue</function> and
<function>msg_set_queue</function>.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>msg_remove_queue</function></member>
<member><function>msg_receive</function></member>
<member><function>msg_stat_queue</function></member>
<member><function>msg_set_queue</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml

View file

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.6 $ -->
<!-- $Revision: 1.7 $ -->
<refentry id="function.msg-set-queue">
<refnamediv>
<refname>msg_set_queue</refname>
<refpurpose>Set information in the message queue data structure</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>msg_set_queue</methodname>
<methodparam><type>resource</type><parameter>queue</parameter></methodparam>
@ -16,8 +17,6 @@
<function>msg_set_queue</function> allows you to change the values of the
msg_perm.uid, msg_perm.gid, msg_perm.mode and msg_qbytes fields of the
underlying message queue data structure.
You specify the values you require by setting the value of the keys that
you require in the <parameter>data</parameter> array.
</para>
<para>
Changing the data structure will require that PHP be running as the same
@ -26,13 +25,51 @@
root privileges are required to raise the msg_qbytes values above the
system defined limit.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
See also <function>msg_remove_queue</function>,
<function>msg_receive</function>,
<function>msg_stat_queue</function> and
<function>msg_get_queue</function>.
<variablelist>
<varlistentry>
<term><parameter>queue</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>data</parameter></term>
<listitem>
<para>
You specify the values you require by setting the value of the keys
that you require in the <parameter>data</parameter> array.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>msg_remove_queue</function></member>
<member><function>msg_receive</function></member>
<member><function>msg_stat_queue</function></member>
<member><function>msg_get_queue</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,12 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.6 $ -->
<!-- $Revision: 1.7 $ -->
<refentry id="function.msg-stat-queue">
<refnamediv>
<refname>msg_stat_queue</refname>
<refpurpose>Returns information from the message queue data structure</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>array</type><methodname>msg_stat_queue</methodname>
<methodparam><type>resource</type><parameter>queue</parameter></methodparam>
@ -17,6 +18,25 @@
This is useful, for example, to determine which process sent the message
that was just received.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>queue</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
The return value is an array whose keys and values have the following
meanings:
@ -89,13 +109,20 @@
</tgroup>
</table>
</para>
<para>
See also <function>msg_remove_queue</function>,
<function>msg_receive</function>,
<function>msg_get_queue</function> and
<function>msg_set_queue</function>.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>msg_remove_queue</function></member>
<member><function>msg_receive</function></member>
<member><function>msg_get_queue</function></member>
<member><function>msg_set_queue</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,40 +1,64 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.7 $ -->
<!-- splitted from ./en/functions/sem.xml, last change in rev 1.2 -->
<!-- $Revision: 1.8 $ -->
<refentry id="function.sem-acquire">
<refnamediv>
<refname>sem_acquire</refname>
<refpurpose>Acquire a semaphore</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>sem_acquire</methodname>
<methodparam><type>resource</type><parameter>sem_identifier</parameter></methodparam>
</methodsynopsis>
<para>
<function>sem_acquire</function> blocks (if necessary) until the
semaphore can be acquired. A process attempting to acquire a
semaphore which it has already acquired will block forever
if acquiring the semaphore would cause its maximum number
of semaphore to be exceeded.
<parameter>sem_identifier</parameter> is a semaphore resource,
obtained from <function>sem_get</function>.
<function>sem_acquire</function> blocks (if necessary) until the semaphore
can be acquired. A process attempting to acquire a semaphore which it has
already acquired will block forever if acquiring the semaphore would cause
its maximum number of semaphore to be exceeded.
</para>
<para>
After processing a request, any semaphores acquired by the process but not
explicitly released will be released automatically and a warning will be
generated.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>sem_identifier</parameter></term>
<listitem>
<para>
<parameter>sem_identifier</parameter> is a semaphore resource,
obtained from <function>sem_get</function>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
<para>
After processing a request, any semaphores acquired by the
process but not explicitly released will be released automatically
and a warning will be generated.
</para>
<para>
See also
<function>sem_get</function>, and
<function>sem_release</function>.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>sem_get</function></member>
<member><function>sem_release</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.10 $ -->
<!-- splitted from ./en/functions/sem.xml, last change in rev 1.2 -->
<!-- $Revision: 1.11 $ -->
<refentry id="function.sem-get">
<refnamediv>
<refname>sem_get</refname>
<refpurpose>Get a semaphore id</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>resource</type><methodname>sem_get</methodname>
<methodparam><type>int</type><parameter>key</parameter></methodparam>
@ -18,31 +18,100 @@
<para>
<function>sem_get</function> returns an id that can be used to
access the System V semaphore with the given <parameter>key</parameter>.
The semaphore is created if necessary using the permission bits specified in
<parameter>perm</parameter> (defaults to 0666). The number of processes that can
acquire the semaphore simultaneously is set to <parameter>max_acquire</parameter>
(defaults to 1). Actually this value is set only if the process
finds it is the only process currently attached to the semaphore.
</para>
<para>
Optional parameter <parameter>auto_release</parameter> specifies if the
semaphore should be automatically released on request shutdown.
It is available since PHP 4.3.0.
</para>
<para>
Returns a positive semaphore identifier on success, or &false; on
error.
</para>
<para>
A second call to <function>sem_get</function> for the same key
will return a different semaphore identifier, but both
identifiers access the same underlying semaphore.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
See also <function>sem_acquire</function>,
<function>sem_release</function>, and <function>ftok</function>.
<variablelist>
<varlistentry>
<term><parameter>key</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>max_acquire</parameter></term>
<listitem>
<para>
The number of processes that can acquire the semaphore simultaneously
is set to <parameter>max_acquire</parameter> (defaults to 1).
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>perm</parameter></term>
<listitem>
<para>
The semaphore permissions. Defaults to 0666. Actually this value is
set only if the process finds it is the only process currently
attached to the semaphore.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>auto_release</parameter></term>
<listitem>
<para>
Specifies if the semaphore should be automatically released on request
shutdown.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns a positive semaphore identifier on success, or &false; on
error.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>4.3.0</entry>
<entry>
The <parameter>auto_release</parameter> parameter was added.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>sem_acquire</function></member>
<member><function>sem_release</function></member>
<member><function>ftok</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.6 $ -->
<!-- splitted from ./en/functions/sem.xml, last change in rev 1.2 -->
<!-- $Revision: 1.7 $ -->
<refentry id="function.sem-release">
<refnamediv>
<refname>sem_release</refname>
<refpurpose>Release a semaphore</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>sem_release</methodname>
<methodparam><type>resource</type><parameter>sem_identifier</parameter></methodparam>
@ -17,19 +17,44 @@
is currently acquired by the calling process, otherwise
a warning is generated.
</para>
<para>
&return.success;
</para>
<para>
After releasing the semaphore, <function>sem_acquire</function>
may be called to re-acquire it.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
See also
<function>sem_get</function> and
<function>sem_acquire</function>.
<variablelist>
<varlistentry>
<term><parameter>sem_identifier</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>sem_get</function></member>
<member><function>sem_acquire</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,35 +1,60 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.6 $ -->
<!-- splitted from ./en/functions/sem.xml, last change in rev 1.7 -->
<!-- $Revision: 1.7 $ -->
<refentry id="function.sem-remove">
<refnamediv>
<refname>sem_remove</refname>
<refpurpose>Remove a semaphore</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>sem_remove</methodname>
<methodparam><type>resource</type><parameter>sem_identifier</parameter></methodparam>
</methodsynopsis>
<para>
<function>sem_remove</function> removes the semaphore
<parameter>sem_identifier</parameter> if it
has been created by <function>sem_get</function>,
otherwise generates a warning.
<function>sem_remove</function> removes the given semaphore.
</para>
<para>
After removing the semaphore, it is no more accessible.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>sem_identifier</parameter></term>
<listitem>
<para>
The semaphore identifier. Must have been created with
<function>sem_get</function>, otherwise a warning is generated.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
<para>
After removing the semaphore, it is no more accessible.
</para>
<para>
See also <function>sem_get</function>,
<function>sem_release</function> and
<function>sem_acquire</function>.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>sem_get</function></member>
<member><function>sem_release</function></member>
<member><function>sem_acquire</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.9 $ -->
<!-- splitted from ./en/functions/sem.xml, last change in rev 1.2 -->
<!-- $Revision: 1.10 $ -->
<refentry id="function.shm-attach">
<refnamediv>
<refname>shm_attach</refname>
<refpurpose>Creates or open a shared memory segment</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>shm_attach</methodname>
<methodparam><type>int</type><parameter>key</parameter></methodparam>
@ -15,24 +15,71 @@
<methodparam choice="opt"><type>int</type><parameter>perm</parameter></methodparam>
</methodsynopsis>
<para>
<function>shm_attach</function> returns an id that can be
used to access the System V shared memory with the given <parameter>key</parameter>, the
first call creates the shared memory segment with <parameter>memsize</parameter>
(default: sysvshm.init_mem in the &php.ini;, otherwise
10000 bytes) and the optional perm-bits <parameter>perm</parameter>
(default: 0666).
<function>shm_attach</function> returns an id that can be used to access
the System V shared memory with the given <parameter>key</parameter>, the
first call creates the shared memory segment with
<parameter>memsize</parameter> and the optional perm-bits
<parameter>perm</parameter>.
</para>
<para>
A second call to <function>shm_attach</function> for the same
<parameter>key</parameter> will return a different shared memory
identifier, but both identifiers access the same underlying
shared memory. <parameter>Memsize</parameter> and
shared memory. <parameter>memsize</parameter> and
<parameter>perm</parameter> will be ignored.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
See also <function>ftok</function>, and <function>shm_detach</function>.
<variablelist>
<varlistentry>
<term><parameter>key</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>memsize</parameter></term>
<listitem>
<para>
The memory size. If not provided, default to the
<literal>sysvshm.init_mem</literal> in the &php.ini;, otherwise 10000
bytes.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>perm</parameter></term>
<listitem>
<para>
The optional permission bits. Default to 0666.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns a shared memory segment identifier.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>sem_detach</function></member>
<member><function>ftok</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,31 +1,58 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.6 $ -->
<!-- splitted from ./en/functions/sem.xml, last change in rev 1.2 -->
<!-- $Revision: 1.7 $ -->
<refentry id="function.shm-detach">
<refnamediv>
<refname>shm_detach</refname>
<refpurpose>Disconnects from shared memory segment</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>shm_detach</methodname>
<methodparam><type>int</type><parameter>shm_identifier</parameter></methodparam>
</methodsynopsis>
<para>
<function>shm_detach</function> disconnects from the shared
memory given by the <parameter>shm_identifier</parameter> created
by <function>shm_attach</function>. Remember, that shared memory
still exist in the Unix system and the data is still present.
<function>shm_detach</function> disconnects from the shared memory given
by the <parameter>shm_identifier</parameter> created by
<function>shm_attach</function>. Remember, that shared memory still exist
in the Unix system and the data is still present.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>shm_identifier</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<function>shm_detach</function> always returns &true;.
</para>
<para>
See also <function>shm_attach</function>, <function>shm_remove</function>,
and <function>shm_remove_var</function>.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>shm_attach</function></member>
<member><function>shm_remove</function></member>
<member><function>shm_remove_var</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.5 $ -->
<!-- splitted from ./en/functions/sem.xml, last change in rev 1.2 -->
<!-- $Revision: 1.6 $ -->
<refentry id="function.shm-get-var">
<refnamediv>
<refname>shm_get_var</refname>
<refpurpose>Returns a variable from shared memory</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>mixed</type><methodname>shm_get_var</methodname>
<methodparam><type>int</type><parameter>shm_identifier</parameter></methodparam>
@ -15,13 +15,42 @@
</methodsynopsis>
<para>
<function>shm_get_var</function> returns the variable with a given
<parameter>variable_key</parameter>, in the shared memory
segment identified by <parameter>shm_identifier</parameter>.
<parameter>shm_identifier</parameter> was obtained from
<function>shm_attach</function>. The variable is still present
in the shared memory.
<parameter>variable_key</parameter>, in the given shared memory segment.
The variable is still present in the shared memory.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>shm_identifier</parameter></term>
<listitem>
<para>
Shared memory segment, obtained from <function>shm_attach</function>.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>variable_key</parameter></term>
<listitem>
<para>
The variable key.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns the variable with the given key.
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.6 $ -->
<!-- splitted from ./en/functions/sem.xml, last change in rev 1.2 -->
<!-- $Revision: 1.7 $ -->
<refentry id="function.shm-put-var">
<refnamediv>
<refname>shm_put_var</refname>
<refpurpose>Inserts or updates a variable in shared memory</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>shm_put_var</methodname>
<methodparam><type>int</type><parameter>shm_identifier</parameter></methodparam>
@ -18,10 +18,6 @@
<function>shm_put_var</function> inserts or updates the
<parameter>variable</parameter> with the given
<parameter>variable_key</parameter>.
<link linkend="language.types">All variable-types</link> are supported.
</para>
<para>
&return.success;
</para>
<para>
Warnings (<literal>E_WARNING</literal> level) will be issued if
@ -30,6 +26,45 @@
request.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>shm_identifier</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>variable_key</parameter></term>
<listitem>
<para>
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>variable</parameter></term>
<listitem>
<para>
The variable. All <link linkend="language.types"> variable-types</link>
are supported.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,14 +1,14 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.6 $ -->
<!-- splitted from ./en/functions/sem.xml, last change in rev 1.18 -->
<!-- $Revision: 1.7 $ -->
<refentry id="function.shm-remove-var">
<refnamediv>
<refname>shm_remove_var</refname>
<refpurpose>Removes a variable from shared memory
</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>shm_remove_var</methodname>
<methodparam><type>int</type><parameter>shm_identifier</parameter></methodparam>
@ -18,10 +18,48 @@
Removes a variable with a given <parameter>variable_key</parameter>
and frees the occupied memory.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
See also <function>shm_remove</function>.
<variablelist>
<varlistentry>
<term><parameter>shm_identifier</parameter></term>
<listitem>
<para>
The shared memory identifier.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>variable_key</parameter></term>
<listitem>
<para>
The variable key.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>shm_remove</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View file

@ -1,13 +1,13 @@
<?xml version="1.0" encoding="iso-8859-1"?>
<!-- $Revision: 1.6 $ -->
<!-- splitted from ./en/functions/sem.xml, last change in rev 1.2 -->
<!-- $Revision: 1.7 $ -->
<refentry id="function.shm-remove">
<refnamediv>
<refname>shm_remove</refname>
<refpurpose>Removes shared memory from Unix systems</refpurpose>
</refnamediv>
<refsect1>
<title>Description</title>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>bool</type><methodname>shm_remove</methodname>
<methodparam><type>int</type><parameter>shm_identifier</parameter></methodparam>
@ -16,10 +16,40 @@
<function>shm_remove</function> removes the shared memory
<parameter>shm_identifier</parameter>. All data will be destroyed.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
See also <function>shm_remove_var</function>.
<variablelist>
<varlistentry>
<term><parameter>shm_identifier</parameter></term>
<listitem>
<para>
The shared memory identifier.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>shm_remove_var</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file