REGISTER_TICK_FUNCTION(3) 1 REGISTER_TICK_FUNCTION(3)register_tick_function - Register a function for execution on each tickSYNOPSIS
bool register_tick_function (callable $function, [mixed $arg], [mixed $...])
DESCRIPTION
Registers the given $function to be executed when a tick is called.
PARAMETERS
o $function
- The function name as a string, or an array consisting of an object and a method.
o $arg
-
o $...
-
RETURN VALUES
Returns TRUE on success or FALSE on failure.
EXAMPLES
Example #1
register_tick_function(3) example
<?php
declare(ticks=1);
// using a function as the callback
register_tick_function('my_function', true);
// using an object->method
$object = new my_class();
register_tick_function(array(&$object, 'my_method'), true);
?>
CHANGELOG
+--------+---------------------------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+---------------------------------------------------+
| 5.3.0 | |
| | |
| | Ticks are now supported on threaded web server |
| | modules. |
| | |
+--------+---------------------------------------------------+
NOTES
Warning
register_tick_function(3) should not be used with threaded web server modules with PHP 5.2 or lower.
SEE ALSO
declare, unregister_tick_function(3).
PHP Documentation Group REGISTER_TICK_FUNCTION(3)
Check Out this Related Man Page
PCNTL_SIGNAL(3) 1 PCNTL_SIGNAL(3)pcntl_signal - Installs a signal handlerSYNOPSIS
bool pcntl_signal (int $signo, callable|int $handler, [bool $restart_syscalls = true])
DESCRIPTION
The pcntl_signal(3) function installs a new signal handler or replaces the current signal handler for the signal indicated by $signo.
PARAMETERS
o $signo
- The signal number.
o $handler
- The signal handler. This may be either a callable, which will be invoked to handle the signal, or either of the two global con-
stants SIG_IGN or SIG_DFL, which will ignore the signal or restore the default signal handler respectively. If a callable is
given, it must implement the following signature:
void handler (int $signo)
o $signo
- The signal being handled.
Note
Note that when you set a handler to an object method, that object's reference count is increased which makes it persist
until you either change the handler to something else, or your script ends.
o $restart_syscalls
- Specifies whether system call restarting should be used when this signal arrives.
RETURN VALUES
Returns TRUE on success or FALSE on failure.
CHANGELOG
+--------+---------------------------------------------------+
|Version | |
| | |
| | Description |
| | |
+--------+---------------------------------------------------+
| 4.3.0 | |
| | |
| | As of PHP 4.3.0 PCNTL uses ticks as the signal |
| | handle callback mechanism, which is much faster |
| | than the previous mechanism. This change follows |
| | the same semantics as using "user ticks". You |
| | must use the declare() statement to specify the |
| | locations in your program where callbacks are |
| | allowed to occur for the signal handler to func- |
| | tion properly (as used in the example below). |
| | |
+--------+---------------------------------------------------+
EXAMPLES
Example #1
pcntl_signal(3) example
<?php
// tick use required as of PHP 4.3.0
declare(ticks = 1);
// signal handler function
function sig_handler($signo)
{
switch ($signo) {
case SIGTERM:
// handle shutdown tasks
exit;
break;
case SIGHUP:
// handle restart tasks
break;
case SIGUSR1:
echo "Caught SIGUSR1...
";
break;
default:
// handle all other signals
}
}
echo "Installing signal handler...
";
// setup signal handlers
pcntl_signal(SIGTERM, "sig_handler");
pcntl_signal(SIGHUP, "sig_handler");
pcntl_signal(SIGUSR1, "sig_handler");
// or use an object, available as of PHP 4.3.0
// pcntl_signal(SIGUSR1, array($obj, "do_something"));
echo"Generating signal SIGUSR1 to self...
";
// send SIGUSR1 to current process id
// posix_* functions require the posix extension
posix_kill(posix_getpid(), SIGUSR1);
echo "Done
";
?>
NOTES pcntl_signal(3) doesn't stack the signal handlers, but replaces them.
SEE ALSO pcntl_fork(3), pcntl_waitpid(3).
PHP Documentation Group PCNTL_SIGNAL(3)