Thread-safe way to add a key to a dict only if it isn't already there?

Marko Rauhamaa marko at
Sat Jul 7 17:00:26 EDT 2018

Ian Kelly <ian.g.kelly at>:
> the leaning of the devs seems to be to refrain from documenting it and
> instead document that *no* operations are guaranteed atomic.

I believe that to be wise. Otherwise, Python would limit its future
implementation options.

The only thing Python should guarantee is that the data structures stay
"coherent" under race conditions. In other words, there cannot be a
segmentation fault. For example, if two threads executed this code in

    global i
    i = 1
    i += 1

a legal end result could be that i contains the string "impossible".


More information about the Python-list mailing list