pnctl_signal обмен сигналами между процессами

bratskiy

Новичок
pnctl_signal обмен сигналами между процессами

Здравствуйте!
php 4.4.7

Есть такой вот код:

//---Сохраняем pid процесса в файлик
set_time_limit(0);
$pid = posix_getpid();
$fp = fopen("pid", "w");
fputs($fp, $pid);
fclose($fp);

// класс, одной из функций которого является отловка сообщений
class ClassName {
...........................
function run() {
declare(ticks = 1);
pcntl_signal(SIGUSR1, array($this, "sig_handler"));
while(true) {
dosomethink
}
}
function sig_handler($signo) {
switch($signo) {
case SIGUSR1:
print("Message Geted!!!!!!n\r\");
}
}
......................
}
$cl = new ClassName;
$cl->run();

Ещё есть формочка, которая эти самые сообщения отправляет.

if(isset($_POST["f_msg"])) {
$pid = implode("", @file("pid"));
posix_kill($pid, SIGUSR1);
echo "сообщение отправлено";
}
echo '<form action="'.$_SERVER["PHP_SELF"].'" method="post">';
echo '<textarea name="f_msg"></textarea><br>';
echo '<input type="submit" value="Отправить">';
echo '</form>';

Почему-то сообщения не принимаются. Если скипт отловки написан линейно (то есть без класса, там правда в функцию pnctl_signal вторым параметром передаётся не массив, а строка содержащая имя функции-обработчика, котрая срабатывает при приёме сигнала) то всё работает.

Помогите, пожалуйста решить мою проблемку
 
Сверху