Channel::capacity
(PHP 8.6+, True Async 1.0)
public Channel::capacity(): int
Возвращает ёмкость канала, заданную при создании через конструктор.
0— канал-рандеву (unbuffered).- Положительное число — максимальный размер буфера.
Значение не меняется в течение жизни канала.
Возвращаемые значения
Ёмкость буфера канала (int).
Примеры
Пример #1 Проверка ёмкости
<?php
use Async\Channel;
$rendezvous = new Channel();
echo $rendezvous->capacity(); // 0
$buffered = new Channel(100);
echo $buffered->capacity(); // 100
Пример #2 Адаптивная логика в зависимости от типа канала
<?php
use Async\Channel;
function processChannel(Channel $ch): void {
if ($ch->capacity() === 0) {
echo "Рандеву-канал: каждая отправка ждёт получателя\n";
} else {
echo "Буферизованный канал: ёмкость {$ch->capacity()}\n";
echo "Свободно: " . ($ch->capacity() - $ch->count()) . " слотов\n";
}
}
См. также
- Channel::__construct — Создание канала
- Channel::count — Количество значений в буфере
- Channel::isFull — Проверить, полон ли буфер