私はPthreadsを動作させようとしていますが、残念なことに古いものはすべて現在のものと変更されたものを理解するのが難しいです。エラーが返されないだけでなく、pthreadsがプールにぶら下がっています - > submit
のpthreadsの最新バージョンでPHP7.2.0-devの実行とXdebugを
現在、私は
<?php
$THREADS = 3;
class UptimeWorker extends Worker {
public function start(?int $options = null) {
return parent::start(PTHREADS_INHERIT_CLASSES | PTHREADS_INHERIT_CONSTANTS | PTHREADS_INHERIT_FUNCTIONS);
}
}
class UptimeWork extends Threaded {
private $i;
public function __construct(int $i) {
$this->i = $i;
}
public function run() {
echo "I am ".$i.PHP_EOL;
$this->setGarbage();
}
}
$pool = new Pool($THREADS, UptimeWorker::class);
for($i=0;$i<10;$i++) {
var_dump($i);
$pool->submit(new UptimeWork($i));
}
echo "pre-shutdown".PHP_EOL;
$pool->shutdown();
echo "finished".PHP_EOL;
を持っており、出力のみがそこから、for
声明の中で最初var_dump
呼び出しからint(0)
ですプロセスはハングアップしているように見え、終了せず、それ以上の出力は行われません。
ここで何がうまくいかず、これが機能するには何が起こる必要がありますか?
他にもいくつかの質問がありますので、邪魔になるかもしれません。あなたはphp7(no-dev)上でコードを試しましたか?xDebugなしで試してみましたか?自分でライブラリを構築したのか、Windows用にダウンロードしたのですか(Windows用の7.2バージョンはありません)。そして、error.logファイルを含む「no errors」と言ったら? – Robbie