note 126457 added to class.parallel-events

From: Date: Sat, 25 Sep 2021 19:24:30 +0000
Subject: note 126457 added to class.parallel-events
Groups: php.notes 
Request: Send a blank email to php-notes+get-217002@lists.php.net to get a copy of this message
<?php // example below shows how to stop child thread from main thread use parallel\{Channel, Events, Events\Event\Type, Runtime}; $fnThread = static function (Channel $channel) { $events = new Events(); $events->addChannel($channel); $events->setBlocking(false); // don't block on Events::poll() while (true) { if ($event = $events->poll()) { //It seems, the target gets deleted after returning an event, so add it again. $events->addChannel($channel); if (Type::Read === $event->type) { echo "- received value: ".$event->value.PHP_EOL; } elseif (Type::Close === $event->type) { echo "- receiving close event".PHP_EOL; return "i'm done"; } } echo "-\n"; usleep(500_000); } }; // main thread $runtime = new Runtime(); $channel = new Channel(); $future = $runtime->run($fnThread, [$channel]); $channel->send('message1'); sleep(2); $channel->send('message2'); sleep(2); echo "closing channel\n"; $channel->close(); echo "future said: ".$future->value(); echo PHP_EOL; ---- Server IP: 45.112.84.4 Probable Submitter: 45.112.85.242 (proxied: 176.104.221.149) ---- Manual Page -- https://php.net/manual/en/class.parallel-events.php Edit -- https://main.php.net/note/edit/126457 Del: integrated -- https://main.php.net/note/delete/126457/integrated Del: useless -- https://main.php.net/note/delete/126457/useless Del: bad code -- https://main.php.net/note/delete/126457/bad+code Del: spam -- https://main.php.net/note/delete/126457/spam Del: non-english -- https://main.php.net/note/delete/126457/non-english Del: in docs -- https://main.php.net/note/delete/126457/in+docs Del: other reasons-- https://main.php.net/note/delete/126457 Reject -- https://main.php.net/note/reject/126457 Search -- https://main.php.net/manage/user-notes.php

« previous php.notes (#217002) next »