stupid thread question
Michael Vanier
mvanier at endor.bbb.caltech.edu
Mon Jun 12 18:36:28 EDT 2000
Python gurus,
Apologies if this has come up before...
I wrote a little python script using the thread module the other day. I
wanted to be able to set a flag in the parent thread that would be read in
the child thread. So I set a flag variable (an integer in this case) in the
parent, created the child thread, and then checked the value of the flag
every time through a loop in the child thread to see if it had changed. It
turns out that the child thread apparently made a copy of the flag, because
when it changed in the parent it didn't change in the child.
To fix this, I changed the flag to be a list with one integer element. Now,
when I change the list element in the parent, the child sees it too. I
gather that what this means is that there is a fundamental distinction
between atomic types like integers and reference types like lists or
dictionaries. However, since python treats everything as a reference this
seems inconsistent to me. So what I want to know is: what is the cause of
this behavior, and what is the justification for it? Or could it be a bug?
FWIW this is on a RH Linux 6.1 system running python 1.6a2 with pthreads (I
assume).
TIA,
Mike
--------------------------------------------------------------
Mike Vanier mvanier at bbb.caltech.edu
Department of Computation and Neural Systems, Caltech 216-76
GNU/Linux: We can't lose; we're on a mission from God.
More information about the Python-list
mailing list