Commit 1713f36
committed
gh-158600: Avoid copying in set.intersection_update()
Calculate all intersections before swapping the final result into the target. Keep the calculation and swap within the same critical section so concurrent updates are not lost.
This keeps the existing unchanged-on-error behavior while removing
the O(len(self)) initial copy.1 parent be11563 commit 1713f36
1 file changed
Lines changed: 25 additions & 9 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1861 | 1861 | | |
1862 | 1862 | | |
1863 | 1863 | | |
1864 | | - | |
1865 | | - | |
| 1864 | + | |
| 1865 | + | |
| 1866 | + | |
1866 | 1867 | | |
1867 | | - | |
1868 | | - | |
1869 | | - | |
1870 | | - | |
1871 | | - | |
1872 | | - | |
| 1868 | + | |
| 1869 | + | |
| 1870 | + | |
| 1871 | + | |
| 1872 | + | |
| 1873 | + | |
| 1874 | + | |
| 1875 | + | |
| 1876 | + | |
| 1877 | + | |
| 1878 | + | |
| 1879 | + | |
| 1880 | + | |
| 1881 | + | |
| 1882 | + | |
| 1883 | + | |
| 1884 | + | |
| 1885 | + | |
| 1886 | + | |
| 1887 | + | |
| 1888 | + | |
1873 | 1889 | | |
1874 | 1890 | | |
1875 | 1891 | | |
1876 | 1892 | | |
1877 | | - | |
| 1893 | + | |
1878 | 1894 | | |
1879 | 1895 | | |
1880 | 1896 | | |
| |||
0 commit comments