It's not atomic even with the GIL, though: another thread can run in between the bytecode's load and increment, right?
The GIL's guarantees didn't extend to this.
The GIL's guarantees didn't extend to this.
Or, on further reading, maybe it applies to anything that implements `_iadd_` in C. Which does not appear to include native longs: https://github.com/python/cpython/blob/main/Objects/longobje...