with lock:
old = atomic_int
atomic_int += 1
but in one operation
As above - the lock (under the assumption that it is actually a
threading.Lock) will ensure that.
Diez
Just out of interest, would the following, without a lock, be safe?
old, atomic_int = atomic_int, atomic_int+1
Frank Millman
atomic_int = counter.next()
and the GIL keeps it safe. When in doubt, use a lock or communicate
with other threads through Queues.
> Just out of interest, would the following, without a lock, be safe?
>
> old, atomic_int = atomic_int, atomic_int+1
nope.
there's some information here (make sure you read the comments):
http://effbot.org/pyfaq/what-kinds-of-global-value-mutation-are-thread-safe.htm
and some additional discussion here:
http://mail.python.org/pipermail/python-dev/2006-November/thread.html#69981
</F>