xref: /ext-fiber/tests/gc-cycle-callback.phpt (revision c265d9fb)
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