calling functions across threads

Fernando Perez fperez528 at yahoo.com
Wed Dec 29 15:46:40 EST 2004


Steven Bethard wrote:

> Fernando Perez wrote:
>> Steven Bethard wrote:
>> 
>> 
>>>I get the correct output, but if you run this yourself, you'll see that
>>>the numbers 1 through 10 aren't printed in sync with the writes (i.e.
>>>every half second); they're all printed at the end.  Could someone
>>>explain to me why this happens, and how (if possible) I can get the
>>>numbers printed in sync with the appends to the list?
>> 
>> 
>> This is just a shot in the dark, as I'm quite ignorant of threading details.
>> But what happens if you try adding a sys.stdout.flush() call after the print
>> statement in your custom update() method?  It may just be a flushing problem
>> what makes the output appear out of sync...
> 
> Strangely enough, that causes PythonWin to hang...  Why that would be
> true, I have no idea...

Mmh.  I wouldn't be surprised if under pythonwin, sys.stdout is not the true
python sys.stdout.  Check the following:

sys.stdout is sys.__stdout__

The answer is probably false.  In that case, they may have implemented some
incomplete object whose flush method is broken, or something similar.  I can't
confirm, as I don't have windows access, so this is just a guess.

Cheers,

f




More information about the Python-list mailing list