Victor Stinner schrieb am 15.04.2016 um 00:33:
2016-04-15 0:22 GMT+02:00 Brett Cannon:
And even if it was GIL-free you do run the risk of two dicts ending up at the same version # by simply mutating the same number of times if the counters were per-dict instead of process-wide.
For some optimizations, it is not needed to check if the dictionary was replaced, or you check it directly. So it doesn't matter to have the same version with the same number of operations.
For the use case of Yury's optimization, having a globally unique version tag makes the guard much cheaper, and the guard must check that the dictionary was not replaced.
How can that be achieved? If the tag is just a sequentially growing number, creating two dicts and applying one operation to the first one should give both the same version tag, right? Stefan