| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 | --TEST--Test V8::executeString() : Pthreads test #1--SKIPIF--<?phprequire_once(dirname(__FILE__) . '/skipif.inc');if(!class_exists('Thread')) {    die('skip pthreads extension required');}?>--FILE--<?phpclass Workhorse extends Thread{    protected $val;    public function __construct($val)    {        $this->val = $val;    }    public function run()    {        $v8 = new V8Js();        $v8->val = $this->val;        $v8->sync_var_dump = function($value) {            $this->synchronized(function($thread) use ($value) {                    while(!$thread->readyToPrint) {                        $thread->wait();                    }                    var_dump($value);                    $thread->notify();                }, $this);        };        $v8->executeString('PHP.sync_var_dump(PHP.val);');    }}$foo = new Workhorse('foo');$bar = new Workhorse('bar');$foo->start();$bar->start();$bar->synchronized(function($thread) {    $thread->readyToPrint = true;    $thread->notify();    $thread->wait();}, $bar);$foo->synchronized(function($thread) {    $thread->readyToPrint = true;    $thread->notify();    $thread->wait();}, $foo);$foo->join();$bar->join();?>===EOF===--EXPECT--string(3) "bar"string(3) "foo"===EOF===
 |