Commit 09f17c8
committed
gh-151218: fix data race in sys_set_flag for free-threading
Concurrent calls to sys.set_int_max_str_digits() in free-threaded builds
could double-free the same sys.flags tuple item because sys_set_flag()
updated the slot without synchronization.
Protect sys.flags updates with a mutex in free-threaded builds and hold
the same lock across the flag and interpreter int_max_str_digits state
updates so sys.get_int_max_str_digits() stays consistent with sys.flags.1 parent ce916dc commit 09f17c8
3 files changed
Lines changed: 104 additions & 18 deletions
File tree
- Lib/test
- Misc/NEWS.d/next/Core_and_Builtins
- Python
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
887 | 887 | | |
888 | 888 | | |
889 | 889 | | |
| 890 | + | |
| 891 | + | |
| 892 | + | |
| 893 | + | |
| 894 | + | |
| 895 | + | |
| 896 | + | |
| 897 | + | |
| 898 | + | |
| 899 | + | |
| 900 | + | |
| 901 | + | |
| 902 | + | |
| 903 | + | |
| 904 | + | |
| 905 | + | |
| 906 | + | |
| 907 | + | |
| 908 | + | |
| 909 | + | |
| 910 | + | |
| 911 | + | |
| 912 | + | |
| 913 | + | |
| 914 | + | |
| 915 | + | |
| 916 | + | |
| 917 | + | |
| 918 | + | |
| 919 | + | |
| 920 | + | |
| 921 | + | |
| 922 | + | |
| 923 | + | |
| 924 | + | |
| 925 | + | |
| 926 | + | |
| 927 | + | |
| 928 | + | |
| 929 | + | |
| 930 | + | |
| 931 | + | |
| 932 | + | |
| 933 | + | |
| 934 | + | |
| 935 | + | |
| 936 | + | |
| 937 | + | |
| 938 | + | |
| 939 | + | |
| 940 | + | |
| 941 | + | |
| 942 | + | |
890 | 943 | | |
891 | 944 | | |
892 | 945 | | |
| |||
Lines changed: 2 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
22 | 22 | | |
23 | 23 | | |
24 | 24 | | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
25 | 28 | | |
26 | 29 | | |
27 | 30 | | |
| |||
3476 | 3479 | | |
3477 | 3480 | | |
3478 | 3481 | | |
| 3482 | + | |
| 3483 | + | |
| 3484 | + | |
| 3485 | + | |
3479 | 3486 | | |
3480 | | - | |
| 3487 | + | |
| 3488 | + | |
3481 | 3489 | | |
3482 | 3490 | | |
3483 | 3491 | | |
3484 | | - | |
| 3492 | + | |
3485 | 3493 | | |
| 3494 | + | |
| 3495 | + | |
| 3496 | + | |
| 3497 | + | |
| 3498 | + | |
| 3499 | + | |
| 3500 | + | |
| 3501 | + | |
| 3502 | + | |
| 3503 | + | |
| 3504 | + | |
| 3505 | + | |
| 3506 | + | |
3486 | 3507 | | |
3487 | 3508 | | |
3488 | 3509 | | |
| |||
3501 | 3522 | | |
3502 | 3523 | | |
3503 | 3524 | | |
3504 | | - | |
3505 | | - | |
3506 | | - | |
3507 | | - | |
3508 | | - | |
3509 | | - | |
3510 | | - | |
3511 | | - | |
3512 | | - | |
3513 | | - | |
3514 | | - | |
3515 | | - | |
3516 | | - | |
3517 | | - | |
3518 | 3525 | | |
3519 | 3526 | | |
3520 | 3527 | | |
| |||
4666 | 4673 | | |
4667 | 4674 | | |
4668 | 4675 | | |
4669 | | - | |
4670 | 4676 | | |
4671 | | - | |
| 4677 | + | |
| 4678 | + | |
| 4679 | + | |
| 4680 | + | |
| 4681 | + | |
| 4682 | + | |
| 4683 | + | |
| 4684 | + | |
| 4685 | + | |
| 4686 | + | |
| 4687 | + | |
| 4688 | + | |
| 4689 | + | |
| 4690 | + | |
| 4691 | + | |
4672 | 4692 | | |
4673 | 4693 | | |
4674 | 4694 | | |
| 4695 | + | |
| 4696 | + | |
| 4697 | + | |
| 4698 | + | |
4675 | 4699 | | |
4676 | 4700 | | |
4677 | 4701 | | |
4678 | 4702 | | |
4679 | 4703 | | |
| 4704 | + | |
| 4705 | + | |
| 4706 | + | |
| 4707 | + | |
| 4708 | + | |
| 4709 | + | |
| 4710 | + | |
4680 | 4711 | | |
4681 | 4712 | | |
0 commit comments