Channel::isClosed
(PHP 8.6+, True Async 1.0)
public Channel::isClosed(): bool
Перевіряє, чи був канал закритий викликом close().
Закритий канал не приймає нові значення через send(), але дозволяє
читати залишкові значення з буфера через recv().
Значення, що повертаються
true — канал закрито.
false — канал відкрито.
Приклади
Приклад #1 Перевірка стану каналу
<?php
use Async\Channel;
$channel = new Channel(5);
echo $channel->isClosed() ? "closed" : "open"; // "open"
$channel->send('data');
$channel->close();
echo $channel->isClosed() ? "closed" : "open"; // "closed"
// Можна читати буфер навіть після закриття
$value = $channel->recv(); // "data"
Приклад #2 Умовне відправлення
<?php
use Async\Channel;
$channel = new Channel(10);
spawn(function() use ($channel) {
while (!$channel->isClosed()) {
$data = produceData();
$channel->send($data);
delay(100);
}
echo "Канал закрито, зупиняємо відправлення\n";
});
Дивіться також
- Channel::close — Закрити канал
- Channel::isEmpty — Перевірити, чи буфер порожній