PATH:
opt
/
alt
/
tests
/
alt-php85-pecl-zmq_1.1.3-2.84f0720.el8
/
tests
--TEST-- Test pthreads integration --SKIPIF-- <?php require_once(dirname(__FILE__) . '/skipif.inc'); if (!extension_loaded ('pthreads')) { die ('skip Requires pthreads extension'); } if (!in_array ('acquire', get_class_methods ('ZMQContext'))) die ('skip'); if (!in_array ('getsocketcount', get_class_methods ('ZMQContext'))) die ('skip'); ?> --FILE-- <?php $threads = 10; class MyWorker extends Thread { private $sendThisBack; public function __construct($sendThisBack){ $this->sendThisBack = $sendThisBack; } public function run() { $context = ZMQContext::acquire(); $socket = $context->getSocket(ZMQ::SOCKET_PUSH); $socket->connect ("inproc://pthreads-test"); $socket->send($this->sendThisBack); usleep(500 * 1000); } } class MyServer extends Thread { private $threads; public function __construct($threads){ $this->threads = $threads; } public function run() { $context = ZMQContext::acquire(); $socket = $context->getSocket(ZMQ::SOCKET_PULL); $socket->bind("inproc://pthreads-test"); $socket->setSockOpt(ZMQ::SOCKOPT_HWM, 1000); usleep(500 * 1000); echo 'Receiving responses' . PHP_EOL; $responses = array(); for ($i = 0; $i < $this->threads; $i++) { $responses[] = $socket->recv(); } sort($responses); foreach($responses as $response){ echo $response . PHP_EOL; } } } $server = new MyServer($threads); $server->start(); echo 'Server started' . PHP_EOL; $requests = array(); for ($i = 0; $i < $threads; $i++) { $requests[$i] = new MyWorker("thr_$i"); $requests[$i]->start(); } echo 'Workers started' . PHP_EOL; for ($i = 0; $i < $threads; $i++) { $requests[$i]->join(); } $server->join(); echo 'All requests pushed' . PHP_EOL; echo "OK"; --EXPECT-- Server started Workers started Receiving responses thr_0 thr_1 thr_2 thr_3 thr_4 thr_5 thr_6 thr_7 thr_8 thr_9 All requests pushed OK
[-] 034-unbind.phpt
[edit]
[-] 050-sharedcontext.phpt
[edit]
[-] 021-callbackwarning.phpt
[edit]
[-] 023-failedcallback.phpt
[edit]
[-] 047-auth-configure.phpt
[edit]
[-] 003-getpersistentid.phpt
[edit]
[-] 017-callbackonlyonnewsocket.phpt
[edit]
[-] bug_gh_50.phpt
[edit]
[-] 040-cert-clone.phpt
[edit]
[-] bug_gh_59_2.phpt
[edit]
[-] 027-getset.phpt
[edit]
[-] 039-cert-equals.phpt
[edit]
[-] 055-socks-proxy.phpt
[edit]
[-] 010-pollsetinvalidargs.phpt
[edit]
[-] 051-socketcount.phpt
[edit]
[-] 046-cert-apply.phpt
[edit]
[-] skipif-libzmq2.inc
[edit]
[-] bug_gh_49.phpt
[edit]
[-] libzmq2-sockopt.phpt
[edit]
[-] 028-xpub.phpt
[edit]
[-] 014-setsockoptparam.phpt
[edit]
[-] 012-pollsetremoveinvalid.phpt
[edit]
[-] bug_gh_59.phpt
[edit]
[-] 024-versionconstant.phpt
[edit]
[-] 036-device.phpt
[edit]
[-] 045-auth-allow-deny.phpt
[edit]
[-] 022-highwatermark.phpt
[edit]
[-] 043-cert-load.phpt
[edit]
[-] 020-exceptionincallback.phpt
[edit]
[-] 029-xrepxreqdevice.phpt
[edit]
[-] 052-pthreads.phpt
[edit]
[-] libzmq4-sockopt.phpt
[edit]
[-] skipif-libzmq3.inc
[edit]
[-] 026-sockettype.phpt
[edit]
[-] 018-callbackpersistent.phpt
[edit]
[-] 044-auth-construct.phpt
[edit]
[-] 009-ispersistent.phpt
[edit]
[-] bug_gh_165.phpt
[edit]
[-] 033-disconnect.phpt
[edit]
[-] 030-xrepmanualqueue.phpt
[edit]
[-] 025-sendrecvmulti.phpt
[edit]
[-] 042-cert-save.phpt
[edit]
[-] 007-addremovepoll.phpt
[edit]
[-] 038-cert-construct.phpt
[edit]
[-] 037-device-deprecated.phpt
[edit]
[-] 004-getendpoints.phpt
[edit]
[-] 001-send.phpt
[edit]
[+]
..
[-] 015-callback.phpt
[edit]
[-] 005-forceconnectarg.phpt
[edit]
[-] libzmq3-sockopt.phpt
[edit]
[-] 006-sockopt.phpt
[edit]
[-] 008-twowaystoconstruct.phpt
[edit]
[-] 035-capture.phpt
[edit]
[-] bug_gh_156.phpt
[edit]
[-] zeromq_test_helper.inc
[edit]
[-] 049-events.phpt
[edit]
[-] 016-callbackinvalidargs.phpt
[edit]
[-] 031-lastendpoint.phpt
[edit]
[-] bug_gh_43.phpt
[edit]
[-] 002-test-binary.phpt
[edit]
[-] 048-pollsetitems.phpt
[edit]
[-] 053-z85.phpt
[edit]
[-] skipif-czmq2.inc
[edit]
[-] 041-cert-meta.phpt
[edit]
[-] 013-pollclearandreuse.phpt
[edit]
[-] rose.jpg
[edit]
[-] skipif.inc
[edit]
[-] skipif-libzmq4.inc
[edit]
[-] 032-contextopt.phpt
[edit]
[-] 011-exceptions.phpt
[edit]
[-] 054-curvekeypair.phpt
[edit]