1--TEST--
2swoole_coroutine/defer: coro defer
3--SKIPIF--
4<?php require __DIR__ . '/../../include/skipif.inc'; ?>
5--FILE--
6<?php
7require __DIR__ . '/../../include/bootstrap.php';
8go(function () {
9    defer(function () {
10        echo "10\n";
11        Assert::same(co::getuid(), 1);
12        co::sleep(.001);
13        Assert::same(co::getuid(), 1);
14        echo "11\n";
15        defer(function () {
16            echo "14\n";
17            Assert::same(co::getuid(), 1);
18            co::sleep(.001);
19            Assert::same(co::getuid(), 1);
20            echo "15\n";
21        });
22        defer(function () {
23            echo "12\n";
24            Assert::same(co::getuid(), 1);
25            co::sleep(.001);
26            Assert::same(co::getuid(), 1);
27            echo "13\n";
28        });
29    });
30    defer(function () {
31        echo "8\n";
32        Assert::same(co::getuid(), 1);
33        co::sleep(.001);
34        Assert::same(co::getuid(), 1);
35        echo "9\n";
36    });
37    echo "0\n";
38    Assert::same(co::getuid(), 1);
39    co::sleep(.001);
40    Assert::same(co::getuid(), 1);
41    echo "1\n";
42    defer(function () {
43        echo "4\n";
44        Assert::same(co::getuid(), 1);
45        co::sleep(.001);
46        Assert::same(co::getuid(), 1);
47        echo "5\n";
48        defer(function () {
49            echo "6\n";
50            Assert::same(co::getuid(), 1);
51            co::sleep(.001);
52            Assert::same(co::getuid(), 1);
53            echo "7\n";
54        });
55    });
56    defer(function () {
57        echo "2\n";
58        Assert::same(co::getuid(), 1);
59        co::sleep(.001);
60        Assert::same(co::getuid(), 1);
61        echo "3\n";
62    });
63});
64swoole_event_wait();
65?>
66--EXPECT--
670
681
692
703
714
725
736
747
758
769
7710
7811
7912
8013
8114
8215
83