如果不存储堆叠元素的数组,PHP pthreads会出现分段错误


PHP pthreads segmentation fault if not storing array of stacked elements

我尝试使用示例(Stacking.php)中的代码:

$worker = new ExampleWorker("My Worker Thread");
$work = array();
while($i++<10){
    printf(
        "Stacking: %d/%d'n", $i, $worker->stack($work[]=new Work(array(rand()*100)))
    );
}

我想采用这个例子,将其放入无限WHILE循环中,等待数据库中的事件,并在它们出现时堆叠新元素。

将会有大量的事件要堆栈,我不能将它们全部存储在$work数组中,我想以某种方式清理它,或者根本不使用它。

问题是当我改变时:

$worker->stack($work[]=new Work(array(rand()*100))

$worker->stack(new Work(array(rand()*100))

PHP进程在第一个工作人员完成后出现segfoots

如何将$worker->stack放入无限循环中,而不必存储对每个堆叠工作的引用?

排序答案为;你不能。

实现方式和原因的详细信息如下所示:https://gist.github.com/krakjoe/6437782

我说的任何话都只是重复,在任何情况下,你都会从完整阅读整个文件中受益。