Commit 9e1b5b5
committed
Fix exception handling and memory management in async API
• Add ZEND_ASYNC_EVENT_F_EXCEPTION_HANDLED flag for tracking processed exceptions
• Fix zend_async_waker_callback_resolve to automatically capture exceptions
• Refactor exception handling macros to work at event level instead of coroutine level
• Fix double-free memory bug in reactor module
• Optimize exception propagation between coroutines
Changes:
- Move exception handling logic from coroutine level to event level
- Automatically mark exceptions as handled when passed to another coroutine
- Prevent further propagation of captured exceptions
- Unify API for working with event flags
- Resolve memory corruption issues in reactor cleanup1 parent 3f14c26 commit 9e1b5b5
File tree
4 files changed
+32
-46
lines changed- tests/await
4 files changed
+32
-46
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
321 | 321 | | |
322 | 322 | | |
323 | 323 | | |
| 324 | + | |
324 | 325 | | |
325 | | - | |
326 | | - | |
327 | | - | |
328 | | - | |
329 | | - | |
| 326 | + | |
| 327 | + | |
| 328 | + | |
| 329 | + | |
330 | 330 | | |
331 | 331 | | |
332 | 332 | | |
333 | 333 | | |
334 | 334 | | |
335 | 335 | | |
| 336 | + | |
| 337 | + | |
336 | 338 | | |
337 | 339 | | |
338 | 340 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
429 | 429 | | |
430 | 430 | | |
431 | 431 | | |
432 | | - | |
| 432 | + | |
| 433 | + | |
| 434 | + | |
| 435 | + | |
| 436 | + | |
| 437 | + | |
| 438 | + | |
| 439 | + | |
| 440 | + | |
| 441 | + | |
| 442 | + | |
433 | 443 | | |
434 | 444 | | |
435 | 445 | | |
| |||
445 | 455 | | |
446 | 456 | | |
447 | 457 | | |
448 | | - | |
| 458 | + | |
449 | 459 | | |
450 | 460 | | |
451 | 461 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
243 | 243 | | |
244 | 244 | | |
245 | 245 | | |
246 | | - | |
247 | | - | |
248 | 246 | | |
249 | 247 | | |
250 | 248 | | |
| |||
289 | 287 | | |
290 | 288 | | |
291 | 289 | | |
| 290 | + | |
292 | 291 | | |
293 | 292 | | |
294 | 293 | | |
| |||
390 | 389 | | |
391 | 390 | | |
392 | 391 | | |
393 | | - | |
394 | | - | |
395 | 392 | | |
396 | 393 | | |
397 | 394 | | |
| |||
416 | 413 | | |
417 | 414 | | |
418 | 415 | | |
| 416 | + | |
419 | 417 | | |
420 | 418 | | |
421 | 419 | | |
| |||
502 | 500 | | |
503 | 501 | | |
504 | 502 | | |
505 | | - | |
506 | | - | |
507 | 503 | | |
508 | 504 | | |
509 | 505 | | |
| |||
527 | 523 | | |
528 | 524 | | |
529 | 525 | | |
| 526 | + | |
530 | 527 | | |
531 | 528 | | |
532 | 529 | | |
| |||
828 | 825 | | |
829 | 826 | | |
830 | 827 | | |
831 | | - | |
832 | | - | |
833 | 828 | | |
834 | 829 | | |
835 | 830 | | |
| |||
844 | 839 | | |
845 | 840 | | |
846 | 841 | | |
| 842 | + | |
847 | 843 | | |
848 | 844 | | |
849 | 845 | | |
| |||
976 | 972 | | |
977 | 973 | | |
978 | 974 | | |
979 | | - | |
980 | | - | |
981 | 975 | | |
982 | 976 | | |
983 | 977 | | |
| |||
1002 | 996 | | |
1003 | 997 | | |
1004 | 998 | | |
| 999 | + | |
1005 | 1000 | | |
1006 | 1001 | | |
1007 | 1002 | | |
| |||
1087 | 1082 | | |
1088 | 1083 | | |
1089 | 1084 | | |
1090 | | - | |
1091 | | - | |
1092 | 1085 | | |
1093 | 1086 | | |
1094 | 1087 | | |
| |||
1113 | 1106 | | |
1114 | 1107 | | |
1115 | 1108 | | |
| 1109 | + | |
1116 | 1110 | | |
1117 | 1111 | | |
1118 | 1112 | | |
| |||
1184 | 1178 | | |
1185 | 1179 | | |
1186 | 1180 | | |
1187 | | - | |
1188 | | - | |
1189 | 1181 | | |
1190 | 1182 | | |
1191 | 1183 | | |
| |||
1212 | 1204 | | |
1213 | 1205 | | |
1214 | 1206 | | |
| 1207 | + | |
1215 | 1208 | | |
1216 | 1209 | | |
1217 | 1210 | | |
| |||
1454 | 1447 | | |
1455 | 1448 | | |
1456 | 1449 | | |
1457 | | - | |
1458 | | - | |
1459 | 1450 | | |
1460 | 1451 | | |
1461 | 1452 | | |
| |||
1549 | 1540 | | |
1550 | 1541 | | |
1551 | 1542 | | |
| 1543 | + | |
| 1544 | + | |
1552 | 1545 | | |
1553 | 1546 | | |
1554 | 1547 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
14 | | - | |
| 14 | + | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
29 | 29 | | |
30 | 30 | | |
31 | 31 | | |
32 | | - | |
| 32 | + | |
33 | 33 | | |
34 | 34 | | |
35 | 35 | | |
36 | 36 | | |
37 | 37 | | |
38 | | - | |
| 38 | + | |
39 | 39 | | |
40 | 40 | | |
41 | 41 | | |
| |||
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | 58 | | |
78 | 59 | | |
79 | 60 | | |
0 commit comments