Commit 7f5334e
async_hooks: deprecate unsafe emit{Before,After}
The emit{Before,After} APIs in AsyncResource are problematic.
* emit{Before,After} are named to suggest that the only thing they do
is emit the before and after hooks. However, they in fact, mutate
the current execution context.
* They must be properly nested. Failure to do so by user code leads
to catastrophic (unrecoverable) exceptions. It is very easy for the
users to forget that they must be using a try/finally block around
the code that must be surrounded by these operations. Even the
example provided in the official docs makes this mistake. Failing
to use a finally can lead to a catastrophic crash if the callback
ends up throwing.
This change provides a safer `runInAsyncScope` API as an alternative
and deprecates emit{Before,After}.
Backport-PR-URL: #18892
PR-URL: #18513
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Andreas Madsen <amwebdk@gmail.com>1 parent 5b88cb7 commit 7f5334eCopy full SHA for 7f5334e
File tree
Expand file treeCollapse file tree
6 files changed
+160
-12
lines changedOpen diff view settings
Filter options
- doc/api
- lib
- test
- async-hooks
- parallel
Expand file treeCollapse file tree
6 files changed
+160
-12
lines changedOpen diff view settings
Collapse file
+52-12Lines changed: 52 additions & 12 deletions
- Display the source diff
- Display the rich diff
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
599 | 599 | |
600 | 600 | |
601 | 601 | |
602 | | - |
603 | | - |
604 | | - |
605 | | - |
606 | 602 | |
607 | 603 | |
608 | 604 | |
| ||
615 | 611 | |
616 | 612 | |
617 | 613 | |
618 | | - |
619 | | - |
620 | | - |
621 | | - |
622 | | - |
| 614 | + |
| 615 | + |
| 616 | + |
| 617 | + |
| 618 | + |
| 619 | + |
| 620 | + |
623 | 621 | |
624 | 622 | |
625 | 623 | |
| ||
629 | 627 | |
630 | 628 | |
631 | 629 | |
| 630 | + |
| 631 | + |
| 632 | + |
| 633 | + |
| 634 | + |
| 635 | + |
| 636 | + |
| 637 | + |
632 | 638 | |
633 | 639 | |
634 | 640 | |
| ||
654 | 660 | |
655 | 661 | |
656 | 662 | |
657 | | - |
658 | | - |
659 | | - |
| 663 | + |
660 | 664 | |
661 | 665 | |
662 | 666 | |
| ||
667 | 671 | |
668 | 672 | |
669 | 673 | |
| 674 | + |
| 675 | + |
| 676 | + |
| 677 | + |
| 678 | + |
| 679 | + |
| 680 | + |
| 681 | + |
| 682 | + |
| 683 | + |
| 684 | + |
| 685 | + |
| 686 | + |
| 687 | + |
| 688 | + |
670 | 689 | |
| 690 | + |
| 691 | + |
| 692 | + |
| 693 | + |
671 | 694 | |
672 | 695 | |
673 | 696 | |
674 | 697 | |
675 | 698 | |
676 | 699 | |
677 | 700 | |
| 701 | + |
| 702 | + |
| 703 | + |
| 704 | + |
| 705 | + |
| 706 | + |
678 | 707 | |
| 708 | + |
| 709 | + |
| 710 | + |
| 711 | + |
679 | 712 | |
680 | 713 | |
681 | 714 | |
| ||
686 | 719 | |
687 | 720 | |
688 | 721 | |
| 722 | + |
| 723 | + |
| 724 | + |
| 725 | + |
| 726 | + |
| 727 | + |
689 | 728 | |
690 | 729 | |
691 | 730 | |
| ||
705 | 744 | |
706 | 745 | |
707 | 746 | |
| 747 | + |
708 | 748 | |
709 | 749 | |
710 | 750 | |
|
Collapse file
+13Lines changed: 13 additions & 0 deletions
- Display the source diff
- Display the rich diff
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
768 | 768 | |
769 | 769 | |
770 | 770 | |
| 771 | + |
| 772 | + |
| 773 | + |
| 774 | + |
| 775 | + |
| 776 | + |
| 777 | + |
| 778 | + |
| 779 | + |
| 780 | + |
| 781 | + |
| 782 | + |
771 | 783 | |
772 | 784 | |
773 | 785 | |
| ||
777 | 789 | |
778 | 790 | |
779 | 791 | |
| 792 | + |
780 | 793 | |
781 | 794 | |
782 | 795 | |
|
Collapse file
+24Lines changed: 24 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
143 | 143 | |
144 | 144 | |
145 | 145 | |
| 146 | + |
| 147 | + |
| 148 | + |
| 149 | + |
| 150 | + |
| 151 | + |
| 152 | + |
| 153 | + |
| 154 | + |
| 155 | + |
| 156 | + |
146 | 157 | |
147 | 158 | |
148 | 159 | |
| ||
178 | 189 | |
179 | 190 | |
180 | 191 | |
| 192 | + |
181 | 193 | |
182 | 194 | |
183 | 195 | |
184 | 196 | |
185 | 197 | |
| 198 | + |
186 | 199 | |
187 | 200 | |
188 | 201 | |
189 | 202 | |
| 203 | + |
| 204 | + |
| 205 | + |
| 206 | + |
| 207 | + |
| 208 | + |
| 209 | + |
| 210 | + |
| 211 | + |
| 212 | + |
| 213 | + |
190 | 214 | |
191 | 215 | |
192 | 216 | |
|
Collapse file
test/async-hooks/test-embedder.api.async-resource.runInAsyncScope.js
Copy file name to clipboard+11Lines changed: 11 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
| 1 | + |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | + |
Collapse file
test/parallel/test-async-hooks-recursive-stack-runInAsyncScope.js
Copy file name to clipboard+20Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
| 1 | + |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | + |
| 20 | + |
Collapse file
test/parallel/test-emit-after-uncaught-exception-runInAsyncScope.js
Copy file name to clipboard+40Lines changed: 40 additions & 0 deletions
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| ||
| 1 | + |
| 2 | + |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | + |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | + |
| 14 | + |
| 15 | + |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | + |
| 20 | + |
| 21 | + |
| 22 | + |
| 23 | + |
| 24 | + |
| 25 | + |
| 26 | + |
| 27 | + |
| 28 | + |
| 29 | + |
| 30 | + |
| 31 | + |
| 32 | + |
| 33 | + |
| 34 | + |
| 35 | + |
| 36 | + |
| 37 | + |
| 38 | + |
| 39 | + |
| 40 | + |
0 commit comments