Compared to your program, I
 * Made sure that the slave program actually flushed its stdout buffers
 * didn't call read(), which will by default continue reading until
   it reaches EOF, not merely read the available data

#!/usr/bin/env python
import sys, time, Tkinter, itertools, _tkinter, os

if '-slave' in sys.argv:
    for i in itertools.count():
        time.sleep(1)
        print "This is a line of output:", i
        sys.stdout.flush()
    raise SystemExit

root = Tkinter.Tk()
root.wm_withdraw()

fh = os.popen('%s -slave' % sys.argv[0])

def reader(*args):
    line = fh.readline()
    if not line:
        print "EOF from slave"
        raise SystemExit
    print "from slave: %r" % line

_tkinter.createfilehandler(fh, Tkinter.READABLE, reader)
root.mainloop()

Attachment: pgpGq56Vnc7dS.pgp
Description: PGP signature

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to