ID: 38796
User updated by: fiw at mail dot ru
Reported By: fiw at mail dot ru
-Status: Bogus
+Status: Open
Bug Type: PCNTL related
Operating System: FreeBSD 6.1
PHP Version: 5.1.6
New Comment:
Tony, it's real not bogus! Check it!
Previous Comments:
------------------------------------------------------------------------
[2006-09-12 18:39:54] [EMAIL PROTECTED]
.
------------------------------------------------------------------------
[2006-09-12 18:28:49] fiw at mail dot ru
Description:
------------
No descriptions, sorry.
Reproduce code:
---------------
<?php
declare(ticks = 1);
class Daemon {
private $threads = array();
function __construct() {
echo posix_getpid() . ' Daemon::construct()' . "\n";
for ($i = 0; $i < 5; $i++) $threads[] = new Thread;
}
function __destruct() {
echo posix_getpid() . ' Daemon::destruct()' . "\n";
}
}
class Thread {
function __construct() {
echo posix_getpid() . ' Thread::construct()' . "\n";
$this->pid = pcntl_fork();
if ($this->pid == -1) throw new Exception;
if ($this->pid) {
pcntl_wait($status);
return;
}
echo posix_getpid() . ' Thread::child()' . "\n";
exit;
}
function __destruct() {
echo posix_getpid() . ' Thread::destruct()' . "\n";
}
}
new Daemon;
?>
Expected result:
----------------
77080 Daemon::construct()
77080 Thread::construct()
77081 Thread::child()
77081 Daemon::destruct()
77081 Thread::destruct()
77080 Thread::construct()
77082 Thread::child()
77082 Daemon::destruct()
77082 Thread::destruct()
77082 Thread::destruct()
77080 Thread::construct()
77083 Thread::child()
77083 Daemon::destruct()
77083 Thread::destruct()
77083 Thread::destruct()
77083 Thread::destruct()
77080 Thread::construct()
77084 Thread::child()
77084 Daemon::destruct()
77084 Thread::destruct()
77084 Thread::destruct()
77084 Thread::destruct()
77084 Thread::destruct()
77080 Thread::construct()
77085 Thread::child()
77085 Daemon::destruct()
77085 Thread::destruct()
77085 Thread::destruct()
77085 Thread::destruct()
77085 Thread::destruct()
77085 Thread::destruct()
77080 Thread::destruct()
77080 Thread::destruct()
77080 Thread::destruct()
77080 Thread::destruct()
77080 Thread::destruct()
77080 Daemon::destruct()
Actual result:
--------------
77080 Daemon::construct()
77080 Thread::construct()
77081 Thread::child()
77080 Thread::construct()
77082 Thread::child()
77080 Thread::construct()
77083 Thread::child()
77080 Thread::construct()
77084 Thread::child()
77080 Thread::construct()
77085 Thread::child()
77080 Thread::destruct()
77080 Thread::destruct()
77080 Thread::destruct()
77080 Thread::destruct()
77080 Thread::destruct()
77080 Daemon::destruct()
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=38796&edit=1