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