Commit d17af1e
committed
Allow synchronous proxying of async JS functions
This new mode allows the proxied work itself to be asynchronous (i.e.
return a promise). The new behaviour is triggered by marking a
functions as both `__proxy: 'sync'` and also `__async: true`.
We can use this new mode to replace the bespoke proxying code that
exists for `dlsync` as well as the `poll` system call. For the poll
system call this bespoke code was added in #25523 and #25990, but can
now be completely removed.
In addition to this, because the `poll` syscall is now marked as
`__async` it automatically works under JSPI too.
One downside of this new mode is that the proxied work requires the main
thread event loop to run. Unlike the synchronous proxied work that can
complete even when we are deeply nested.
Fixes: #259701 parent 43af76f commit d17af1e
File tree
20 files changed
+257
-224
lines changed- src
- closure-externs
- lib
- system/lib
- libc
- pthread
- test
- codesize
- core
- tools
20 files changed
+257
-224
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
268 | 268 | | |
269 | 269 | | |
270 | 270 | | |
| 271 | + | |
| 272 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
446 | 446 | | |
447 | 447 | | |
448 | 448 | | |
449 | | - | |
450 | 449 | | |
451 | 450 | | |
452 | 451 | | |
453 | 452 | | |
454 | 453 | | |
| 454 | + | |
| 455 | + | |
| 456 | + | |
| 457 | + | |
| 458 | + | |
| 459 | + | |
| 460 | + | |
| 461 | + | |
| 462 | + | |
455 | 463 | | |
456 | 464 | | |
457 | 465 | | |
458 | 466 | | |
459 | 467 | | |
460 | 468 | | |
461 | 469 | | |
462 | | - | |
| 470 | + | |
463 | 471 | | |
464 | 472 | | |
465 | 473 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
982 | 982 | | |
983 | 983 | | |
984 | 984 | | |
| 985 | + | |
985 | 986 | | |
986 | | - | |
| 987 | + | |
987 | 988 | | |
988 | 989 | | |
989 | 990 | | |
| |||
1022 | 1023 | | |
1023 | 1024 | | |
1024 | 1025 | | |
| 1026 | + | |
| 1027 | + | |
| 1028 | + | |
| 1029 | + | |
| 1030 | + | |
1025 | 1031 | | |
1026 | 1032 | | |
1027 | 1033 | | |
| |||
1160 | 1166 | | |
1161 | 1167 | | |
1162 | 1168 | | |
1163 | | - | |
1164 | | - | |
1165 | | - | |
1166 | | - | |
1167 | | - | |
1168 | | - | |
1169 | | - | |
1170 | | - | |
| 1169 | + | |
| 1170 | + | |
| 1171 | + | |
| 1172 | + | |
| 1173 | + | |
1171 | 1174 | | |
1172 | 1175 | | |
1173 | 1176 | | |
| |||
1202 | 1205 | | |
1203 | 1206 | | |
1204 | 1207 | | |
1205 | | - | |
1206 | | - | |
1207 | | - | |
1208 | | - | |
| 1208 | + | |
| 1209 | + | |
| 1210 | + | |
1209 | 1211 | | |
1210 | | - | |
| 1212 | + | |
1211 | 1213 | | |
1212 | | - | |
1213 | | - | |
1214 | 1214 | | |
1215 | 1215 | | |
1216 | | - | |
| 1216 | + | |
1217 | 1217 | | |
1218 | 1218 | | |
1219 | 1219 | | |
1220 | 1220 | | |
1221 | | - | |
1222 | | - | |
1223 | | - | |
1224 | | - | |
1225 | | - | |
| 1221 | + | |
| 1222 | + | |
| 1223 | + | |
| 1224 | + | |
| 1225 | + | |
| 1226 | + | |
| 1227 | + | |
| 1228 | + | |
1226 | 1229 | | |
1227 | 1230 | | |
1228 | 1231 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
262 | 262 | | |
263 | 263 | | |
264 | 264 | | |
| 265 | + | |
265 | 266 | | |
266 | 267 | | |
267 | 268 | | |
| |||
281 | 282 | | |
282 | 283 | | |
283 | 284 | | |
| 285 | + | |
284 | 286 | | |
285 | 287 | | |
286 | 288 | | |
| |||
313 | 315 | | |
314 | 316 | | |
315 | 317 | | |
316 | | - | |
317 | | - | |
318 | 318 | | |
319 | 319 | | |
320 | 320 | | |
| |||
329 | 329 | | |
330 | 330 | | |
331 | 331 | | |
332 | | - | |
| 332 | + | |
333 | 333 | | |
334 | 334 | | |
335 | 335 | | |
| |||
379 | 379 | | |
380 | 380 | | |
381 | 381 | | |
382 | | - | |
383 | 382 | | |
384 | 383 | | |
385 | 384 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
551 | 551 | | |
552 | 552 | | |
553 | 553 | | |
554 | | - | |
555 | | - | |
| 554 | + | |
| 555 | + | |
| 556 | + | |
| 557 | + | |
556 | 558 | | |
557 | | - | |
| 559 | + | |
| 560 | + | |
| 561 | + | |
558 | 562 | | |
559 | | - | |
560 | | - | |
561 | | - | |
562 | 563 | | |
| 564 | + | |
563 | 565 | | |
564 | 566 | | |
565 | 567 | | |
| |||
571 | 573 | | |
572 | 574 | | |
573 | 575 | | |
574 | | - | |
| 576 | + | |
575 | 577 | | |
576 | 578 | | |
577 | 579 | | |
| |||
595 | 597 | | |
596 | 598 | | |
597 | 599 | | |
598 | | - | |
| 600 | + | |
599 | 601 | | |
600 | 602 | | |
601 | 603 | | |
602 | 604 | | |
603 | | - | |
| 605 | + | |
604 | 606 | | |
605 | | - | |
| 607 | + | |
606 | 608 | | |
607 | 609 | | |
608 | 610 | | |
| 611 | + | |
609 | 612 | | |
610 | 613 | | |
611 | 614 | | |
| |||
619 | 622 | | |
620 | 623 | | |
621 | 624 | | |
622 | | - | |
623 | | - | |
| 625 | + | |
| 626 | + | |
624 | 627 | | |
625 | 628 | | |
626 | 629 | | |
| |||
634 | 637 | | |
635 | 638 | | |
636 | 639 | | |
637 | | - | |
638 | | - | |
| 640 | + | |
| 641 | + | |
639 | 642 | | |
640 | 643 | | |
641 | 644 | | |
642 | | - | |
| 645 | + | |
643 | 646 | | |
644 | 647 | | |
645 | 648 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
83 | 83 | | |
84 | 84 | | |
85 | 85 | | |
86 | | - | |
87 | | - | |
88 | 86 | | |
89 | 87 | | |
90 | 88 | | |
| |||
161 | 159 | | |
162 | 160 | | |
163 | 161 | | |
164 | | - | |
| 162 | + | |
165 | 163 | | |
166 | 164 | | |
167 | 165 | | |
| |||
431 | 429 | | |
432 | 430 | | |
433 | 431 | | |
434 | | - | |
435 | | - | |
436 | | - | |
437 | | - | |
438 | | - | |
439 | | - | |
440 | | - | |
441 | | - | |
442 | | - | |
443 | | - | |
444 | | - | |
445 | | - | |
446 | | - | |
447 | | - | |
448 | | - | |
449 | | - | |
450 | | - | |
451 | | - | |
452 | | - | |
453 | | - | |
454 | | - | |
455 | | - | |
456 | | - | |
457 | | - | |
458 | | - | |
459 | | - | |
460 | | - | |
461 | | - | |
462 | | - | |
463 | 432 | | |
464 | 433 | | |
465 | 434 | | |
| |||
683 | 652 | | |
684 | 653 | | |
685 | 654 | | |
686 | | - | |
| 655 | + | |
687 | 656 | | |
688 | 657 | | |
689 | 658 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
94 | 94 | | |
95 | 95 | | |
96 | 96 | | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
| 97 | + | |
109 | 98 | | |
110 | 99 | | |
111 | 100 | | |
| |||
This file was deleted.
0 commit comments