1--TEST-- 2GC can cleanup cycle when callback references fiber 3--EXTENSIONS-- 4fiber 5--FILE-- 6<?php 7 8$ref = new class () { 9 public $fiber; 10 11 public function __destruct() { 12 var_dump('DTOR'); 13 } 14}; 15 16$fiber = new Fiber(function () use ($ref) { 17 die('UNREACHABLE'); 18}); 19 20$ref->fiber = $fiber; 21 22$fiber = null; 23$ref = null; 24 25var_dump('COLLECT CYCLES'); 26gc_collect_cycles(); 27var_dump('DONE'); 28 29?> 30--EXPECT-- 31string(14) "COLLECT CYCLES" 32string(4) "DTOR" 33string(4) "DONE" 34