4 throw new Exception('hi');
8 echo "Starting main\n";
10 echo "In first using\n";
14 using (new Logger()) {
17 using ($l = new Logger()) {
18 echo "In second using\n";
25 echo "In third using\n";
31 echo "Replacing using variable\n";
35 echo "Entering using with null variable\n";
41 using (new Logger(), new Logger(), new Logger()) {
42 echo "Triple using!\n";
43 echo "Triple using second line\n";
46 using (new Logger()) {
47 echo "Nested using\n";
48 using (new Logger()) {
54 echo "Trying throwing Logger\n";
55 using (new Logger(), new Logger(true), new Logger()) {
56 echo "Shouldn't get here\n";
58 } catch (Exception
$e) {
59 printf("Caught exception %s\n", $e->getMessage());
63 echo "Throwing inside using\n";
64 using (new Logger()) {
65 echo "About to throw";
68 } catch (Exception
$e) {
69 printf("Caught exception %s\n", $e->getMessage());
72 echo "Leaving main\n\n";
75 async
function mainAsync() {
76 echo "\nStarting mainAsync\n";
77 await
using (new Logger()) {
78 echo "Sync create, async dispose\n";
81 await
using (await Logger
::makeAsync()) {
85 using (await Logger
::makeAsync()) {
86 echo "Async create, sync dispose\n";
89 using ($x = await Logger
::makeAsync()) {
90 echo "Async create, sync dispose, variable\n";
95 using (new Logger(), await Logger
::makeAsync()) {
96 echo "Mixed create, sync dispose\n";
100 using (await Logger
::makeAsync(), await Logger
::makeAsync(true)) {
101 echo "Shouldn't get here\n";
103 } catch (Exception
$e) {
104 printf("Caught exception %s\n", $e->getMessage());
107 echo "Leaving mainAsync\n\n";
112 function main_basic() {
113 require 'logger.inc';
116 HH\Asio\
join(mainAsync());
118 echo "In pseudomain\n";
119 using (new Logger()) {
120 echo "Inside using\n";
122 echo "Outside using\n";