OpenSwoole\Coroutine\Channel::__construct()

Latest version: pecl install openswoole-22.1.2 | composer require openswoole/core:22.1.5

Declaration

<?php OpenSwoole\Coroutine\Channel::__construct(int $capacity = 1)

Parameters

capacity

Set the channel max capacity, must be greater than or equal to 1.

Return

A new OpenSwoole Coroutine channel instance.

OpenSwoole Coroutine Channel Constructor

Description

Creates a new channel, allowing you to set the capacity, which cannot be changed once a channel is created.

Quick Usage Example

Wait and pop up one element from the queue of the channel.

<?php

$chan = new OpenSwoole\Coroutine\Channel(1);
co::run(function () use ($chan) {
    $cid = OpenSwoole\Coroutine::getCid();
    $i = 0;
    while (1) {
        co::sleep(1);
        $chan->push(['rand' => rand(1000, 9999), 'index' => $i]);
        echo "[coroutine $cid] - $i\n";
        $i++;
    }
});
co::run(function () use ($chan) {
    $cid = OpenSwoole\Coroutine::getCid();
    while(1) {
        $data = $chan->pop();
        echo "[coroutine $cid]\n";
        var_dump($data);
    }
});
Last updated on September 4, 2022