Console/Process/Unix.php
Zend Framework
LICENSE
This source file is subject to the new BSD license that is bundled
with this package in the file LICENSE.txt.
It is also available through the world-wide-web at this URL:
http://framework.zend.com/license/new-bsd
If you did not receive a copy of the license and are unable to
obtain it through the world-wide-web, please send an email
to license@zend.com so we can send you a copy immediately.
- Category
- ZendX
- Copyright
- Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
- Package
- ZendX_Console
- Version
- $Id$
\ZendX_Console_Process_Unix
Package: ZendX_ConsoleZendX_Console_Process_Unix allows you to spawn a class as a separated process
- Category
- ZendX
- Copyright
- Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
- License
- New BSD License
Constants
Properties



integer $_guid = null
GUID of the child process owner
Default valuenull
Details- Type
- integer



array $_internalIpcData = array()
A data structure to hold data for Inter Process Communications
Default valuearray()
Details- Type
- array



boolean $_ipcIsOkay
Is Shared Memory Area OK? If not, the start() method will block.
Otherwise we'll have a running child without any communication channel.
Details- Type
- boolean



boolean $_isChild = false
Wether we are into child process or not
Default valuefalse
Details- Type
- boolean



boolean $_isRunning = false
Whether the process is yet forked or not
Default valuefalse
Details- Type
- boolean



integer $_puid = null
UID of the child process owner
Default valuenull
Details- Type
- integer
Methods



_callCallbackMethod(string $methodName, array $argList = array(), string $type = self::VOID_METHOD) : mixed
This is called from within the parent; all the communication stuff
is done here.
ParametersName | Type | Description |
---|
$methodName | string | |
---|
$argList | array | |
---|
$type | string | |
---|
Returns 


_setAlive() : void
Set a pseudo-thread property that can be read from parent process
in order to know the child activity.
Practical usage requires that child process calls this method at regular
time intervals; parent will use the getLastAlive() method to know
the elapsed time since the last pseudo-thread life signals...



_sigHandler(integer $signo) : void
This is the signal handler that makes the communications between client
and server possible.
ParametersName | Type | Description |
---|
$signo | integer | |
---|



_writeVariable(string $name, mixed $value) : void
Acutally Write a variable to the shared memory segment
ParametersName | Type | Description |
---|
$name | string | |
---|
$value | mixed | |
---|



getLastAlive() : integer
Read the time elapsed since the last child setAlive() call.
This method is useful because often we have a pseudo-thread pool and we
need to know each pseudo-thread status. If the child executes the
setAlive() method, the parent with getLastAlive() can know that child is
alive.
Returns


getVariable(string $name) : mixed
Get a variable from the shared memory segment. Returns NULL if the
variable doesn't exist.
ParametersName | Type | Description |
---|
$name | string | |
---|
Returns 


setVariable(string $name, mixed $value) : void
Set a variable into the shared memory segment, so that it can accessed
both from the parent and from the child process. Variable names
beginning with underlines are only permitted to interal functions.
ParametersName | Type | Description |
---|
$name | string | |
---|
$value | mixed | |
---|
Throws 


start() : void
Causes this pseudo-thread to begin parallel execution.
This method first checks of all the Shared Memory Segment. If okay, it
forks the child process, attaches signal handler and returns immediatly.
The status is set to running, and a PID is assigned. The result is that
two pseudo-threads are running concurrently: the current thread (which
returns from the call to the start() method) and the other thread (which
executes its run() method).
Throws


stop() : boolean
Causes the current thread to die.
The relative process is killed and disappears immediately from the
processes list.
Returns