1
0
mirror of https://github.com/php/doc-ru.git synced 2026-03-23 23:32:16 +01:00

pthreads : fix XML by converting para to simpara tags via script

This commit is contained in:
Gina Peter Banyard
2026-01-19 03:20:41 +00:00
parent f3a363debb
commit 0f391af6ef
43 changed files with 318 additions and 322 deletions

View File

@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 12424df3c8140290d9e5c4912cbdb260aae055f4 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<book xml:id="book.pthreads" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="book.pthreads">
<?phpdoc extension-membership="pecl" ?>
<title>pthreads</title>
<titleabbrev>pthreads</titleabbrev>
<preface xml:id="intro.pthreads">
&reftitle.intro;
<para>
<simpara>
pthreads предоставляет объектно-ориентированный API для работы с многопоточностью в PHP.
Приложения на PHP могут создавать, читать, записывать, запускать и выполнять синхронизацию с объектами Threads, Workers и Threaded.
</para>
</simpara>
<warning>
<simpara>
Модуль считается неподдерживаемым и мёртвым.
@@ -23,23 +23,23 @@
</simpara>
</tip>
<warning>
<para>
<simpara>
Модуль доступен только для CLI-приложений.
Исходя из этого, многопоточность в PHP в окружении веб-сервера недоступна.
</para>
</simpara>
</warning>
<warning>
<para>
<simpara>
pthreads (v3) может использоваться только с PHP 7.2 и выше, так как ZTS-режим нестабилен в 7.0 и 7.1.
</para>
</simpara>
</warning>
<para>
<simpara>
Класс <classname>Threaded</classname> предоставляет базовый
функционал, необходимый для работы pthreads. Он предоставляет
методы синхронизации и некоторые полезные для разработчика
интерфейсы.
</para>
<para>
</simpara>
<simpara>
Класс <classname>Thread</classname> позволяет создавать потоки.
Для создания потока необходимо создать наследующие его класс и
в нём реализовать метод <literal>run</literal>.
@@ -50,8 +50,8 @@
метод <methodname>Thread::start</methodname> из контекста, в котором он
был создан. Стартовать и присоединить поток можно только в том контексте,
где он был создан.
</para>
<para>
</simpara>
<simpara>
Класс <classname>Worker</classname> имеет постоянное состояние и
будет доступен из метода <methodname>Thread::start</methodname>
(унаследованный метод) до тех пор, пока объект не выйдет из
@@ -64,30 +64,30 @@
будет запущен раньше, чем любой объект с его стека задач, что
даёт возможность инициализировать необходимые для задачи
ресурсы.
</para>
<para>
</simpara>
<simpara>
Класс <classname>Pool</classname> используется для создания группы
исполнителей (worker) для распределения между ними объектов
<classname>Threaded</classname>. Это самый простой и эффективный
вариант использования многопоточности в PHP.
</para>
</simpara>
<caution>
<para>
<simpara>
Класс <classname>Pool</classname> не наследует
<classname>Threaded</classname>, таким образом являясь обычным
объектом PHP. Объекты этого класса не должны разделяться по различным
контекстам.
</para>
</simpara>
</caution>
<para>
<simpara>
Класс <classname>Volatile</classname> добавлен в pthreads v3. Он
используется для задания изменяемых
<classname>Threaded</classname>-свойств классов типа
<classname>Threaded</classname> (так как теперь они по умолчанию
неизменяемы). Также используется для хранения массивов PHP
в контексте <classname>Threaded</classname>.
</para>
<para>
</simpara>
<simpara>
Синхронизация - важная часть многопоточности. Все объекты,
созданные pthreads, имеют встроенные методы для обеспечения
синхронизации (они покажутся очень знакомыми для разработчиков
@@ -98,15 +98,15 @@
<methodname>Threaded::notify</methodname> для ожидающего объекта.
Этот механизм позволяет осуществлять синхронизацию между
объектами <classname>Threaded</classname>.
</para>
</simpara>
<caution>
<para>
<simpara>
Любые объекты вашего приложения, которые предполагается использовать
в многопоточном режиме, должны наследовать
<classname>Threaded</classname>.
</para>
</simpara>
</caution>
<para>
<simpara>
Хранение данных:
Как правило, в объекте Threaded можно использовать любые данные,
которые могут быть сериализованы. Они могут быть записаны и прочтены из
@@ -120,8 +120,8 @@
для установки свойства в Threaded-объекте отделены от ссылок внутри
Threaded-объекте. Чтение тех же данных можно производить напрямую
из любого контекста по ссылке на Threaded-объекте.
</para>
<para>
</simpara>
<simpara>
Статические свойства:
Когда создаётся новый контекст (Thread или Worker), они просто копируются,
но ресурсы и объекты обнуляются (из соображения безопасности). Это
@@ -131,15 +131,15 @@
информация необходимая для соединения, но не само соединение. Это
позволит создать новое соединение в новом контексте и сохранить его
в том же месте никак не затрагивая оригинальный контекст.
</para>
</simpara>
<caution>
<para>
<simpara>
Когда запускаются print_r, var_dump или другие отладочные функции,
они не включают защиту от рекурсии.
</para>
</simpara>
</caution>
<note>
<para>
<simpara>
Ресурсы:
Модули и функциональность PHP, создающие ресурсы, совершенно не
подготовлены для такого типа окружения; pthreads предоставляет
@@ -147,13 +147,13 @@
для большинства типов ресурсов его следует считать небезопасным.
Разделяя ресурс между контекстами необходимо быть крайне внимательным
и осторожным.
</para>
</simpara>
</note>
<caution>
<para>
<simpara>
В окружении, где запускается pthreads, необходимы некоторые ограничения
и запреты для обеспечения стабильности.
</para>
</simpara>
</caution>
</preface>
@@ -166,7 +166,8 @@
&reference.pthreads.pool;
&reference.pthreads.volatile;
</book><!-- Keep this comment at the end of the file
</book>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 12424df3c8140290d9e5c4912cbdb260aae055f4 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="class.collectable" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.collectable" role="class">
<title>Интерфейс Collectable</title>
<titleabbrev>Collectable</titleabbrev>
@@ -10,9 +10,9 @@
<!-- {{{ Collectable intro -->
<section xml:id="collectable.intro">
&reftitle.intro;
<para>
<simpara>
Представляет объект, который можно собрать сборщиком мусора.
</para>
</simpara>
</section>
<!-- }}} -->
@@ -32,7 +32,7 @@
<!-- }}} -->
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.collectable')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.collectable')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
</classsynopsis>
<!-- }}} -->

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="collectable.isgarbage">
<refnamediv>
@@ -13,10 +13,10 @@
<modifier>public</modifier> <type>true</type><methodname>Collectable::isGarbage</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Можно вызывать в <methodname>Pool::collect</methodname> для определения, является
ли объект мусором.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -26,9 +26,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&return.true.always;
</para>
</simpara>
</refsect1>
<refsect1 role="changelog">

View File

@@ -1,25 +1,24 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 637c29c81a694e3e9f1d6293bd7af230050e5499 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<section xml:id="pthreads.installation" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<section xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pthreads.installation">
&reftitle.install;
<para>
<simpara>
Используйте флаг <option role="configure">--enable-maintainer-zts</option> при компиляции PHP.
</para>
</simpara>
<para>
<simpara>
Пользователям Windows необходимо включить <filename>php_pthreads.dll</filename> в &php.ini;
</para>
</simpara>
<note>
<para>
<simpara>
Для Windows также необходимо убедиться, что
<filename>pthreadVC2.dll</filename> (входит в дистрибутив) присутствует
в одном из каталогов, включённых в переменную окружения
<envar>PATH</envar>.
</para>
</simpara>
</note>
</section>

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: c44e9cb68b9b65771f9c45db2c07a06c63d71359 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="class.pool" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.pool" role="class">
<title>Класс Pool</title>
<titleabbrev>Pool</titleabbrev>
@@ -11,14 +11,14 @@
<!-- {{{ Pool intro -->
<section xml:id="pool.intro">
&reftitle.intro;
<para>
<simpara>
Объект Pool является контейнером для хранения объектов Worker, управления ими и
регулирования их количества.
</para>
<para>
</simpara>
<simpara>
Контейнеризация представляет собой высший уровень абстракции над функционалом
Worker включая управление ссылками в корректном для pthreads виде.
</para>
</simpara>
</section>
<!-- }}} -->
@@ -79,31 +79,31 @@
<varlistentry xml:id="pool.props.size">
<term><varname>size</varname></term>
<listitem>
<para>максимальное количество объектов Worker</para>
<simpara>максимальное количество объектов Worker</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pool.props.class">
<term><varname>class</varname></term>
<listitem>
<para>класс Worker</para>
<simpara>класс Worker</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pool.props.workers">
<term><varname>workers</varname></term>
<listitem>
<para>ссылки на объекты Worker</para>
<simpara>ссылки на объекты Worker</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pool.props.ctor">
<term><varname>ctor</varname></term>
<listitem>
<para>аргументы конструктора новых объектов Worker</para>
<simpara>аргументы конструктора новых объектов Worker</simpara>
</listitem>
</varlistentry>
<varlistentry xml:id="pool.props.last">
<term><varname>last</varname></term>
<listitem>
<para>смещение последнего использованного Worker в workers</para>
<simpara>смещение последнего использованного Worker в workers</simpara>
</listitem>
</varlistentry>
</variablelist>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pool.collect">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>int</type><methodname>Pool::collect</methodname>
<methodparam choice="opt"><type>Callable</type><parameter>collector</parameter></methodparam>
</methodsynopsis>
<para>
<simpara>
Метод разрешает пулу собирать ссылки, которые определились как мусор, дополнительным сборщиком.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -24,11 +24,11 @@
<varlistentry>
<term><parameter>collector</parameter></term>
<listitem>
<para>
<simpara>
Callback-функция сборщика, которая возвращает логическое значение,
которое указывает, собирать ли задачу.
Пользовательский сборщик требуется только в редких случаях.
</para>
</simpara>
</listitem>
</varlistentry>
</variablelist>
@@ -36,9 +36,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Метод возвращает количество задач в пуле, которое осталось собрать.
</para>
</simpara>
</refsect1>
<refsect1 role="changelog">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pool.construct">
<refnamediv>
@@ -15,11 +15,11 @@
<methodparam choice="opt"><type>string</type><parameter>class</parameter></methodparam>
<methodparam choice="opt"><type>array</type><parameter>ctor</parameter></methodparam>
</constructorsynopsis>
<para>
<simpara>
Создаёт новый пул рабочих. Пулы лениво создают свои потоки, что означает,
что новые потоки будут создаваться только тогда, когда они необходимы
для выполнения заданий.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -28,26 +28,26 @@
<varlistentry>
<term><parameter>size</parameter></term>
<listitem>
<para>
<simpara>
Максимальное количество воркеров, которое может создать этот пул
</para>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>class</parameter></term>
<listitem>
<para>
<simpara>
Класс для новых воркеров. Если класс не указан, то по умолчанию используется
класс <classname>Worker</classname>.
</para>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>ctor</parameter></term>
<listitem>
<para>
<simpara>
Массив аргументов для передачи конструкторам новых воркерам.
</para>
</simpara>
</listitem>
</varlistentry>
</variablelist>

View File

@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 7febeefab69aa2920922de7adfe17724148d0b60 Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="pool.resize" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pool.resize">
<refnamediv>
<refname>Pool::resize</refname>
<refpurpose>Изменяет размер пула</refpurpose>
@@ -14,9 +13,9 @@
<modifier>public</modifier> <type>void</type><methodname>Pool::resize</methodname>
<methodparam><type>int</type><parameter>size</parameter></methodparam>
</methodsynopsis>
<para>
<simpara>
Изменяет размер пула
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,9 +24,9 @@
<varlistentry>
<term><parameter>size</parameter></term>
<listitem>
<para>
<simpara>
Максимальное количество воркеров, которое может создать этот пул
</para>
</simpara>
</listitem>
</varlistentry>
</variablelist>
@@ -35,9 +34,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&return.void;
</para>
</simpara>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pool.shutdown">
<refnamediv>
@@ -13,10 +13,10 @@
<modifier>public</modifier> <type>void</type><methodname>Pool::shutdown</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Выключает всех воркеров в пуле. Будет заблокировано до тех пор,
пока все отправленные задачи не будут выполнены.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -26,9 +26,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&return.void;
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pool.submit">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>int</type><methodname>Pool::submit</methodname>
<methodparam><type>Threaded</type><parameter>task</parameter></methodparam>
</methodsynopsis>
<para>
<simpara>
Отправляет задание следующему воркеру в пуле
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -24,9 +24,9 @@
<varlistentry>
<term><parameter>task</parameter></term>
<listitem>
<para>
<simpara>
Задание для выполнения
</para>
</simpara>
</listitem>
</varlistentry>
</variablelist>
@@ -34,9 +34,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Идентификатор воркера, выполняющего объект
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pool.submitTo">
<refnamediv>
@@ -14,11 +14,11 @@
<methodparam><type>int</type><parameter>worker</parameter></methodparam>
<methodparam><type>Threaded</type><parameter>task</parameter></methodparam>
</methodsynopsis>
<para>
<simpara>
Отправляет задачу указанному воркеру в пуле. Воркеры индексируются с 0
и будут существовать только в том случае, если пулу необходимо их создать
(поскольку потоки создаются лениво).
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -27,17 +27,17 @@
<varlistentry>
<term><parameter>worker</parameter></term>
<listitem>
<para>
<simpara>
Воркер, в который нужно добавить задание, начиная с <literal>0</literal>.
</para>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>task</parameter></term>
<listitem>
<para>
<simpara>
Задание для выполнения
</para>
</simpara>
</listitem>
</varlistentry>
</variablelist>
@@ -45,9 +45,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Идентификатор воркера, принявшего задачу.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,45 +1,45 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 9a157412627e3f6dbadd76daaf20fb4011393a10 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<chapter xml:id="pthreads.setup" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<chapter xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="pthreads.setup">
&reftitle.setup;
<section xml:id="pthreads.requirements">
&reftitle.required;
<para>
<simpara>
Для работы модуля pthreads требуется потокобезопасная сборка PHP с поддержкой режима ZTS (Zend Thread Safety).
Сделать это можно при компиляции через ключ <option role="configure">--enable-zts</option>
или на системах (кроме ОС Windows) до PHP 8.0.0 через ключ <option role="configure">--enable-maintainer-zts</option>.
</para>
</simpara>
<caution>
<para>
<simpara>
После компиляции потокобезопасность нельзя включить — это исключительно опция,
которая устанавливается на этапе компиляции.
</para>
</simpara>
</caution>
<para>
<simpara>
Модуль pthreads можно собрать везде, где присутствуют заголовочные файлы набора интерфейсов Posix Threads (pthread.h)
и потокобезопасная сборка PHP, включая Windows (через проект pthread-w32 из redhat).
</para>
</simpara>
</section>
<section xml:id="pthreads.installation">
&reftitle.install;
<para>
<simpara>
Готовые сборки pthreads размещают в репозитории PECL, а исходный код
<link xlink:href="&url.git.hub;krakjoe/pthreads">на сайте Github</link>.
Самый простой путь — установить модуль из PECL:
<link xlink:href="&url.pecl.package;pthreads">PECL</link>.
</para>
<para>
</simpara>
<simpara>
Пользователям Windows необходимо загрузить подготовленный бинарный файл с сайта
<link xlink:href="&url.pecl.windows.releases;pthreads">PECL</link>.
</para>
</simpara>
<caution>
<para>
<simpara>
Пользователям Windows придётся выполнить дополнительные действия для добавления
файла библиотеки pthreadVC2.dll (включается в релизы для Windows) в переменную <envar>PATH</envar>.
</para>
</simpara>
</caution>
</section>

View File

@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 0cb49637af4083b525809ce60057d24bc559437f Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="class.thread" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.thread" role="class">
<title>Класс Thread</title>
<titleabbrev>Thread</titleabbrev>
@@ -12,20 +11,20 @@
<!-- {{{ Thread intro -->
<section xml:id="thread.intro">
&reftitle.intro;
<para>
<simpara>
Когда вызван стартовый метод Thread, код метода run будет запущен в отдельном потоке,
параллельно.
</para>
<para>
</simpara>
<simpara>
После отработки метода run, Thread сразу же завершит работу. Он будет присоединён путём
создания Thread в нужное время.
</para>
</simpara>
<warning>
<para>
<simpara>
Если полагаться на движок для определения, когда Thread будет присоединён, можно
столкнуться с неожиданным поведением. Поэтому необходимо, по возможности,
управлять присоединением в явном виде.
</para>
</simpara>
</warning>
</section>
<!-- }}} -->
@@ -63,10 +62,10 @@
<!-- }}} -->
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.thread')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.thread')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.threaded')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.threaded')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
</classsynopsis>
<!-- }}} -->

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.getcreatorid">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>int</type><methodname>Thread::getCreatorId</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Возвращает идентификатор потока, который создал указанный поток.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,9 +25,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Числовой идентификатор.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.getcurrentthread">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <modifier>static</modifier> <type>Thread</type><methodname>Thread::getCurrentThread</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Возвращает ссылку на текущий выполняющийся поток.
</para>
</simpara>
</refsect1>
@@ -26,9 +26,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Объект, представляющий текущий выполняющийся поток.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.getcurrentthreadid">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <modifier>static</modifier> <type>int</type><methodname>Thread::getCurrentThreadId</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Возвращает идентификатор текущего выполняющегося потока.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,9 +25,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Числовой идентификатор.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.getthreadid">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>int</type><methodname>Thread::getThreadId</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Возвращает идентификатор указанного потока
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,9 +25,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Числовой идентификатор.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.isjoined">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>bool</type><methodname>Thread::isJoined</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Сообщает, был ли присоединён указанный поток.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,9 +25,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&return.success;
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.isstarted">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>bool</type><methodname>Thread::isStarted</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Сообщает, был ли запущен указанный поток.
</para>
</simpara>
</refsect1>
@@ -26,9 +26,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&return.success;
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.join">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>bool</type><methodname>Thread::join</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Заставляет вызывающий контекст ждать, пока указанный поток завершит выполнение.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,9 +25,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&return.success;
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.start">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>bool</type><methodname>Thread::start</methodname>
<methodparam choice="opt"><type>int</type><parameter>options</parameter></methodparam>
</methodsynopsis>
<para>
<simpara>
Запускает новый поток для выполнения реализованного метода запуска.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -24,9 +24,9 @@
<varlistentry>
<term><parameter>options</parameter></term>
<listitem>
<para>
<simpara>
Необязательная маска констант наследования, по умолчанию PTHREADS_INHERIT_ALL.
</para>
</simpara>
</listitem>
</varlistentry>
</variablelist>
@@ -34,9 +34,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&return.success;
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: fb726f11d0c098f3ac79e24898cb861fcc269e62 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="class.threaded" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.threaded" role="class">
<title>Класс Threaded</title>
<titleabbrev>Threaded</titleabbrev>
@@ -12,14 +11,14 @@
<!-- {{{ Threaded intro -->
<section xml:id="threaded.intro">
&reftitle.intro;
<para>
<simpara>
Объекты Threaded формируют базис способности pthreads запускать пользовательский код
в новых потоках. Класс содержит методы синхронизации и различные полезные интерфейсы.
</para>
<para>
</simpara>
<simpara>
Самое важное, что объекты Threaded обеспечивают безопасность для разработчика. Все
операции в контексте объекта - безопасны.
</para>
</simpara>
</section>
<!-- }}} -->
@@ -55,7 +54,7 @@
<!-- }}} -->
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.threaded')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.threaded')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
</classsynopsis>
<!-- }}} -->

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.chunk">
<refnamediv>
@@ -14,9 +14,9 @@
<methodparam><type>int</type><parameter>size</parameter></methodparam>
<methodparam><type>bool</type><parameter>preserve</parameter></methodparam>
</methodsynopsis>
<para>
<simpara>
Получает фрагмент таблицы свойств объектов заданного размера, при необходимости сохраняя ключи.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,17 +25,17 @@
<varlistentry>
<term><parameter>size</parameter></term>
<listitem>
<para>
<simpara>
Количество элементов для получения.
</para>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>preserve</parameter></term>
<listitem>
<para>
<simpara>
Сохранять ключи элементов, по умолчанию false.
</para>
</simpara>
</listitem>
</varlistentry>
</variablelist>
@@ -43,9 +43,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Массив элементов из таблицы свойств объектов.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.count">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>int</type><methodname>Threaded::count</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Возвращает количество свойств для этого объекта.
</para>
</simpara>
</refsect1>
@@ -26,9 +26,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.extend">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>bool</type><methodname>Threaded::extend</methodname>
<methodparam><type>string</type><parameter>class</parameter></methodparam>
</methodsynopsis>
<para>
<simpara>
Делает потокобезопасный стандартный класс во время выполнения.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -24,9 +24,9 @@
<varlistentry>
<term><parameter>class</parameter></term>
<listitem>
<para>
<simpara>
Класс для расширения.
</para>
</simpara>
</listitem>
</varlistentry>
</variablelist>
@@ -34,9 +34,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&return.success;
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="thread.isrunning">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>bool</type><methodname>Threaded::isRunning</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Сообщает, выполняется ли указанный объект.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -28,9 +28,9 @@
<para>
Логическое значение состояния объекта.
<note>
<para>
<simpara>
Объект считается запущенным при выполнении метода run.
</para>
</simpara>
</note>
</para>
</refsect1>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.isterminated">
<refnamediv>
@@ -13,10 +13,10 @@
<modifier>public</modifier> <type>bool</type><methodname>Threaded::isTerminated</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Сообщает, был ли объект, на который указывает ссылка, прекращён во время выполнения;
произошли ли фатальные ошибки или были выброшены неперехваченные исключения.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -26,9 +26,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Логическое значение состояния объекта.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.merge">
<refnamediv>
@@ -14,9 +14,9 @@
<methodparam><type>mixed</type><parameter>from</parameter></methodparam>
<methodparam choice="opt"><type>bool</type><parameter>overwrite</parameter></methodparam>
</methodsynopsis>
<para>
<simpara>
Объединяет данные в текущий объект.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,17 +25,17 @@
<varlistentry>
<term><parameter>from</parameter></term>
<listitem>
<para>
<simpara>
Данные для объединения.
</para>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>overwrite</parameter></term>
<listitem>
<para>
<simpara>
Перезаписать существующие ключи, по умолчанию true.
</para>
</simpara>
</listitem>
</varlistentry>
</variablelist>
@@ -43,9 +43,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&return.success;
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.notify">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>bool</type><methodname>Threaded::notify</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Отправляет уведомление указанному объекту.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,9 +25,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&return.success;
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.notifyone">
<refnamediv>
@@ -13,11 +13,11 @@
<modifier>public</modifier> <type>bool</type><methodname>Threaded::notifyOne</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Отправляет уведомление указанному объекту. Это разблокирует по крайней мере один
из заблокированных потоков (в отличие от <methodname>Threaded::notify</methodname>
с разблокировкой всех потоков).
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -27,9 +27,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&return.success;
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.pop">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>bool</type><methodname>Threaded::pop</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Извлекает элемент из таблицы свойств объекта.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,9 +25,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Последний элемент из таблицы свойств объектов.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 637c29c81a694e3e9f1d6293bd7af230050e5499 Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="threaded.run" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.run">
<refnamediv>
<refname>Threaded::run</refname>
<refpurpose>Выполнение</refpurpose>
@@ -11,11 +11,11 @@
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>void</type><methodname>Threaded::run</methodname>
<void />
<void/>
</methodsynopsis>
<para>
<simpara>
Программист всегда должен реализовывать метод run для объектов, которые предназначены для выполнения.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,9 +25,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Возвращаемое значение метода, если оно используется, будет проигнорировано.
</para>
</simpara>
</refsect1>
</refentry>

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.shift">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>mixed</type><methodname>Threaded::shift</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Перемещает элемент из таблицы свойств объекта.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,9 +25,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Первый элемент из таблицы свойств объекта.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.synchronized">
<refnamediv>
@@ -14,9 +14,9 @@
<methodparam><type>Closure</type><parameter>block</parameter></methodparam>
<methodparam rep="repeat"><type>mixed</type><parameter>args</parameter></methodparam>
</methodsynopsis>
<para>
<simpara>
Выполняет блок, сохраняя блокировку синхронизации ссылочных объектов для вызывающего контекста.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,17 +25,17 @@
<varlistentry>
<term><parameter>block</parameter></term>
<listitem>
<para>
<simpara>
Блок кода для выполнения.
</para>
</simpara>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>args</parameter></term>
<listitem>
<para>
<simpara>
Список аргументов переменной длины для использования в качестве аргументов функции блока.
</para>
</simpara>
</listitem>
</varlistentry>
</variablelist>
@@ -43,9 +43,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Возвращаемое значение блока.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: sergey Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: sergey Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="threaded.wait">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>bool</type><methodname>Threaded::wait</methodname>
<methodparam choice="opt"><type>int</type><parameter>timeout</parameter></methodparam>
</methodsynopsis>
<para>
<simpara>
Заставляет вызывающий контекст ждать уведомления от указанного объекта.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -24,9 +24,9 @@
<varlistentry>
<term><parameter>timeout</parameter></term>
<listitem>
<para>
<simpara>
Необязательный параметр времени ожидания в микросекундах.
</para>
</simpara>
</listitem>
</varlistentry>
</variablelist>
@@ -34,9 +34,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&return.success;
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 6d29533483657c036e49edb5ea88c7103d126681 Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="class.volatile" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.volatile" role="class">
<title>Класс Volatile</title>
<titleabbrev>Volatile</titleabbrev>
@@ -11,14 +11,14 @@
<!-- {{{ Volatile intro -->
<section xml:id="volatile.intro">
&reftitle.intro;
<para>
<simpara>
Класс <classname>Volatile</classname> появился в pthreads v3.
Его введение является следствием новой семантики неизменности
<classname>Threaded</classname>-свойств классов <classname>Threaded</classname>.
Класс <classname>Volatile</classname> включает иммутабельность
их <classname>Threaded</classname>-свойств и, также, используется для
хранения массивов PHP в контексте <classname>Threaded</classname>.
</para>
</simpara>
</section>
<!-- }}} -->
@@ -51,7 +51,7 @@
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.threaded')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])">
<xi:fallback />
<xi:fallback/>
</xi:include>
</classsynopsis>
<!-- }}} -->

View File

@@ -1,8 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: da55bd31bced1b766a553d3a3d3f560f046ce48e Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<reference xml:id="class.worker" role="class" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<reference xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude" xml:id="class.worker" role="class">
<title>Класс Worker</title>
<titleabbrev>Worker</titleabbrev>
@@ -12,29 +11,29 @@
<!-- {{{ Worker intro -->
<section xml:id="worker.intro">
&reftitle.intro;
<para>
<simpara>
Рабочие потоки имеют постоянный контекст, поэтому в большинстве случаев их
следует использовать поверх потоков.
</para>
<para>
</simpara>
<simpara>
Когда Worker запущен, будет выполнен метод run, но Thread не завершится, пока не будет
выполнено одно из следующих условий:
</para>
</simpara>
<itemizedlist>
<listitem>
<para>Worker исчезнет из области видимости (не останется ни одной ссылки на него)</para>
<simpara>Worker исчезнет из области видимости (не останется ни одной ссылки на него)</simpara>
</listitem>
<listitem>
<para>программист вызовет функцию остановки</para>
<simpara>программист вызовет функцию остановки</simpara>
</listitem>
<listitem>
<para>скрипт завершит работу</para>
<simpara>скрипт завершит работу</simpara>
</listitem>
</itemizedlist>
<para>
<simpara>
Это значит, что программист может переиспользовать контекст во время исполнения.
Размещение объекта на стек объекта Worker приведёт к запуску метода run этого объекта.
</para>
</simpara>
</section>
<!-- }}} -->
@@ -71,10 +70,10 @@
<!-- }}} -->
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.worker')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.worker')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
<classsynopsisinfo role="comment">&InheritedMethods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.thread')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])" />
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.thread')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[not(@role='procedural')])"/>
</classsynopsis>
<!-- }}} -->

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="worker.collect">
<refnamediv>
@@ -13,10 +13,10 @@
<modifier>public</modifier> <type>int</type><methodname>Worker::collect</methodname>
<methodparam choice="opt"><type>Callable</type><parameter>collector</parameter></methodparam>
</methodsynopsis>
<para>
<simpara>
Позволяет Worker собрать "мусорные" ссылки на задачи.
Опционально можно задать пользовательский сборщик.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,12 +25,12 @@
<varlistentry>
<term><parameter>collector</parameter></term>
<listitem>
<para>
<simpara>
Сборщик типа Callable, который должен возвращать &true; или
&false; в зависимости от того, можно ли собрать задачу.
Случаи, когда вам может понадобиться собственный
сборщик, крайне редки.
</para>
</simpara>
</listitem>
</varlistentry>
</variablelist>
@@ -38,10 +38,10 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Количество оставшихся задач в стеке Worker, которые будут
собраны.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="worker.getstacked">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>int</type><methodname>Worker::getStacked</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Возвращает количество задач, оставшихся в стеке.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,10 +25,10 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Возвращает количество задач, оставшихся в стеке и ожидающих
запуска.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="worker.isshutdown">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>bool</type><methodname>Worker::isShutdown</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Определяет, остановлен Worker или нет.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,9 +25,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&true; если остановлен и &false;, если нет.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="worker.shutdown">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>bool</type><methodname>Worker::shutdown</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Остановить Worker после запуска всех задач со стека.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,9 +25,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
&return.success;
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="worker.stack">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>int</type><methodname>Worker::stack</methodname>
<methodparam><type>Threaded</type><parameter role="reference">work</parameter></methodparam>
</methodsynopsis>
<para>
<simpara>
Добавляет задачу на стек заданному Worker.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -24,10 +24,10 @@
<varlistentry>
<term><parameter>work</parameter></term>
<listitem>
<para>
<simpara>
Объект типа <classname>Threaded</classname>, который
будет запущен Worker.
</para>
</simpara>
</listitem>
</varlistentry>
</variablelist>
@@ -35,9 +35,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Новый размер стека.
</para>
</simpara>
</refsect1>
<refsect1 role="examples">

View File

@@ -1,5 +1,5 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 1f3517218031b663f773061056a873cf2a03f32d Maintainer: rjhdby Status: ready -->
<!-- EN-Revision: bf92d8bd839301de7c837d20ab1dac6c14f83bbf Maintainer: rjhdby Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xml:id="worker.unstack">
<refnamediv>
@@ -13,9 +13,9 @@
<modifier>public</modifier> <type>int</type><methodname>Worker::unstack</methodname>
<void/>
</methodsynopsis>
<para>
<simpara>
Метод убирает первую задачу — самую старую — из стека.
</para>
</simpara>
</refsect1>
<refsect1 role="parameters">
@@ -25,9 +25,9 @@
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
<simpara>
Новый размер стека.
</para>
</simpara>
</refsect1>
<refsect1 role="changelog">