Channel::isClosed
(PHP 8.6+, True Async 1.0)
public Channel::isClosed(): bool
Vérifie si le canal a été fermé par un appel à close().
Un canal fermé n’accepte pas de nouvelles valeurs via send(), mais permet
de lire les valeurs restantes du tampon via recv().
Valeurs de retour
true — le canal est fermé.
false — le canal est ouvert.
Exemples
Exemple #1 Vérification de l’état du canal
<?php
use Async\Channel;
$channel = new Channel(5);
echo $channel->isClosed() ? "fermé" : "ouvert"; // "ouvert"
$channel->send('data');
$channel->close();
echo $channel->isClosed() ? "fermé" : "ouvert"; // "fermé"
// On peut encore lire le tampon même après la fermeture
$value = $channel->recv(); // "data"
Exemple #2 Envoi conditionnel
<?php
use Async\Channel;
$channel = new Channel(10);
spawn(function() use ($channel) {
while (!$channel->isClosed()) {
$data = produceData();
$channel->send($data);
delay(100);
}
echo "Canal fermé, arrêt des envois\n";
});
Voir aussi
- Channel::close — Fermer le canal
- Channel::isEmpty — Vérifier si le tampon est vide