Alex Martelli wrote: > Wrong, alas: each assignment *could* cause the dictionary's internal > structures to be reorganized (rehashed) and impact another assignment > (or even 'get'-access).
(been thinking about this further...)
Dictionary get/set operations *must* be atomic, because Python makes
extensive internal use of dicts.
Consider two threads A and B, which are independent except for the fact
that they reside in the same module.
def thread_A() :
global foo
foo = 1
def thread_B() :
global bar
bar = 2
These threads create entries in the same module's dict, and they *might*
execute at the same time. Requiring a lock in this case is very
non-intuitive, and my conclusion is that dict get/set operations are
indeed atomic (thanks to the GIL).
Regards
Sreeram
signature.asc
Description: OpenPGP digital signature
-- http://mail.python.org/mailman/listinfo/python-list
