get_coroutines

(PHP 8.6+, True Async 1.0)

get_coroutines() — Devuelve un array de todas las corrutinas activas. Útil para diagnóstico y monitoreo.

Descripción

get_coroutines(): array

Valores de retorno

Un array de objetos Async\Coroutine — todas las corrutinas registradas en la solicitud actual.

Ejemplos

Ejemplo #1 Monitoreo de corrutinas

<?php
use function Async\spawn;
use function Async\get_coroutines;
use function Async\delay;

spawn(function() { delay(10000); });
spawn(function() { delay(10000); });

// Dejar que las corrutinas inicien
delay(10);

foreach (get_coroutines() as $coro) {
    echo sprintf(
        "Corrutina #%d: %s, creada en %s\n",
        $coro->getId(),
        $coro->isSuspended() ? 'suspendida' : 'ejecutándose',
        $coro->getSpawnLocation()
    );
}
?>

Ejemplo #2 Detección de fugas

<?php
use function Async\get_coroutines;

// Al final de una solicitud, verificar corrutinas sin terminar
$active = get_coroutines();
if (count($active) > 0) {
    foreach ($active as $coro) {
        error_log("Corrutina sin terminar: " . $coro->getSpawnLocation());
    }
}
?>

Ver también