Commit dd577e0
committed
Add No-GIL Safe Mode with atomic state machine
- Add atomic runtime state machine (UNINIT->INITING->RUNNING->SHUTTING_DOWN->STOPPED)
- Convert volatile flags to _Atomic for thread safety
- Add NIF guards to reject work when not RUNNING
- Fix destructor memory corruption for OWN_GIL subinterpreters
- Add enif_keep_resource/release for ctx in suspended states
- Add debug counters NIF for runtime diagnostics
- Add CI sanitizer builds (ASan, TSan, UBSan)1 parent 3cb5854 commit dd577e0
File tree
7 files changed
+495
-86
lines changed- .github/workflows
- c_src
- src
7 files changed
+495
-86
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
186 | 186 | | |
187 | 187 | | |
188 | 188 | | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
| 199 | + | |
| 200 | + | |
| 201 | + | |
| 202 | + | |
| 203 | + | |
| 204 | + | |
| 205 | + | |
| 206 | + | |
| 207 | + | |
| 208 | + | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
| 213 | + | |
| 214 | + | |
| 215 | + | |
| 216 | + | |
| 217 | + | |
| 218 | + | |
| 219 | + | |
| 220 | + | |
| 221 | + | |
| 222 | + | |
| 223 | + | |
| 224 | + | |
| 225 | + | |
| 226 | + | |
| 227 | + | |
| 228 | + | |
| 229 | + | |
| 230 | + | |
| 231 | + | |
| 232 | + | |
| 233 | + | |
| 234 | + | |
| 235 | + | |
| 236 | + | |
| 237 | + | |
| 238 | + | |
| 239 | + | |
| 240 | + | |
| 241 | + | |
| 242 | + | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
189 | 265 | | |
190 | 266 | | |
191 | 267 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
57 | 57 | | |
58 | 58 | | |
59 | 59 | | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
60 | 87 | | |
61 | 88 | | |
62 | 89 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
633 | 633 | | |
634 | 634 | | |
635 | 635 | | |
| 636 | + | |
636 | 637 | | |
637 | 638 | | |
638 | 639 | | |
| |||
718 | 719 | | |
719 | 720 | | |
720 | 721 | | |
| 722 | + | |
721 | 723 | | |
722 | 724 | | |
723 | 725 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
655 | 655 | | |
656 | 656 | | |
657 | 657 | | |
658 | | - | |
| 658 | + | |
659 | 659 | | |
660 | 660 | | |
661 | 661 | | |
| |||
670 | 670 | | |
671 | 671 | | |
672 | 672 | | |
673 | | - | |
| 673 | + | |
674 | 674 | | |
675 | 675 | | |
676 | 676 | | |
| |||
682 | 682 | | |
683 | 683 | | |
684 | 684 | | |
685 | | - | |
| 685 | + | |
686 | 686 | | |
687 | 687 | | |
688 | 688 | | |
| |||
702 | 702 | | |
703 | 703 | | |
704 | 704 | | |
| 705 | + | |
| 706 | + | |
| 707 | + | |
705 | 708 | | |
706 | 709 | | |
707 | 710 | | |
| |||
711 | 714 | | |
712 | 715 | | |
713 | 716 | | |
714 | | - | |
| 717 | + | |
715 | 718 | | |
716 | 719 | | |
717 | 720 | | |
| |||
720 | 723 | | |
721 | 724 | | |
722 | 725 | | |
| 726 | + | |
| 727 | + | |
723 | 728 | | |
724 | | - | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
| 738 | + | |
725 | 739 | | |
726 | 740 | | |
727 | 741 | | |
| |||
736 | 750 | | |
737 | 751 | | |
738 | 752 | | |
739 | | - | |
| 753 | + | |
740 | 754 | | |
741 | 755 | | |
742 | 756 | | |
743 | | - | |
| 757 | + | |
744 | 758 | | |
745 | 759 | | |
746 | 760 | | |
747 | | - | |
| 761 | + | |
748 | 762 | | |
749 | 763 | | |
750 | 764 | | |
| |||
767 | 781 | | |
768 | 782 | | |
769 | 783 | | |
| 784 | + | |
770 | 785 | | |
771 | 786 | | |
772 | 787 | | |
| |||
785 | 800 | | |
786 | 801 | | |
787 | 802 | | |
788 | | - | |
| 803 | + | |
789 | 804 | | |
790 | 805 | | |
791 | 806 | | |
| |||
795 | 810 | | |
796 | 811 | | |
797 | 812 | | |
798 | | - | |
| 813 | + | |
799 | 814 | | |
800 | 815 | | |
801 | 816 | | |
802 | | - | |
| 817 | + | |
803 | 818 | | |
804 | 819 | | |
805 | 820 | | |
806 | 821 | | |
807 | 822 | | |
808 | 823 | | |
809 | 824 | | |
810 | | - | |
| 825 | + | |
811 | 826 | | |
812 | 827 | | |
813 | 828 | | |
| |||
816 | 831 | | |
817 | 832 | | |
818 | 833 | | |
819 | | - | |
| 834 | + | |
820 | 835 | | |
821 | 836 | | |
822 | 837 | | |
| |||
926 | 941 | | |
927 | 942 | | |
928 | 943 | | |
929 | | - | |
| 944 | + | |
930 | 945 | | |
931 | 946 | | |
932 | 947 | | |
| |||
978 | 993 | | |
979 | 994 | | |
980 | 995 | | |
981 | | - | |
| 996 | + | |
982 | 997 | | |
983 | 998 | | |
984 | 999 | | |
985 | 1000 | | |
986 | 1001 | | |
987 | 1002 | | |
988 | 1003 | | |
989 | | - | |
| 1004 | + | |
990 | 1005 | | |
991 | 1006 | | |
992 | 1007 | | |
| |||
1023 | 1038 | | |
1024 | 1039 | | |
1025 | 1040 | | |
1026 | | - | |
| 1041 | + | |
1027 | 1042 | | |
1028 | 1043 | | |
1029 | 1044 | | |
| |||
0 commit comments