calling functions across threads
Steven Bethard
steven.bethard at gmail.com
Wed Dec 29 15:55:19 EST 2004
Fernando Perez wrote:
> 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.
Just to verify, yes, the answer is False:
py> import sys
py> sys.stdout is sys.__stdout__
False
Is there a list to ask PythonWin specific questions somewhere, or should
I just wait for a PythonWin expert around here?
Steve
More information about the Python-list
mailing list