summaryrefslogtreecommitdiff
path: root/ext/pcntl/test-pcntl.php
diff options
context:
space:
mode:
authorJason Greene <jason@php.net>2001-06-12 08:54:25 +0000
committerJason Greene <jason@php.net>2001-06-12 08:54:25 +0000
commit8b43f3222ec7a2956568cd6da055afac89fd3b87 (patch)
tree09ec0cdeb60f4491efceb4549f34bd401891f8a9 /ext/pcntl/test-pcntl.php
parent3186994df105eafbf292d15187703b654431263b (diff)
downloadphp-git-8b43f3222ec7a2956568cd6da055afac89fd3b87.tar.gz
@Added new experimental module pcntl (Process Control) (Jason)
Initial Import
Diffstat (limited to 'ext/pcntl/test-pcntl.php')
-rwxr-xr-xext/pcntl/test-pcntl.php35
1 files changed, 35 insertions, 0 deletions
diff --git a/ext/pcntl/test-pcntl.php b/ext/pcntl/test-pcntl.php
new file mode 100755
index 0000000000..c611bfe504
--- /dev/null
+++ b/ext/pcntl/test-pcntl.php
@@ -0,0 +1,35 @@
+#!/opt/devel/php4/php -q
+<?
+function alarm_handle($signal){
+ if ($signal==SIGALRM) print "Caught SIGALRM!!!\n";
+}
+function usr1_handle($signal){
+ if ($signal==SIGUSR1) print "Caught SIGUSR1!!!\n";
+}
+
+print "This test will demonstrate a fork followed by ipc via signals.\n";
+
+$pid=pcntl_fork();
+if ($pid==0) {
+ pcntl_signal(SIGUSR1, "usr1_handle");
+ pcntl_signal(SIGALRM, "alarm_handle");
+ print "Child: Waiting for alarm.....\n";
+ sleep(100);
+ print "Child: Waiting for usr1......\n";
+ sleep(100);
+ print "Child: Resetting Alarm handler to Ignore....\n";
+ pcntl_signal(SIGALRM, SIG_IGN);
+ sleep(10);
+ print "Done\n";
+} else {
+ print "Parent: Waiting 10 seconds....\n";
+ sleep(10);
+ print "Parent: Sending SIGALRM to Child\n";
+ posix_kill($pid,SIGALRM);
+ sleep(1);
+ print "Parent: Senging SIGUSR1 to Child\n";
+ posix_kill($pid,SIGUSR1);
+ sleep(1);
+ print "Parent: Sending SIGALRM to Child\n";
+ pcntl_waitpid($pid, $status, $options);
+}