On 12/21/2012 10:52 AM, Kevin Walzer wrote:
Yesterday I posted a question about keeping a Tkinter GUI during a
long-running process, i.e. reading data from a pipe via the subprocess
module. I think that question did not quite get at the heart of the
issue because it assumed that Python, like Tcl which underlies Tkinter,
supports non-blocking, asynchronous reading out of the box. Apparently
it does not.

There is currently the asyncore module, but I don't know that anyone really likes it.

So, my question is hereby revised as such: how can I implement a
non-blocking read of a subprocess pipe that can write data to the
Tkinter text widget in an manner that does not cause the GUI to lock up?

Interesting question. Guido is currently, with help from many others with async experience, working on a replacement for asyncore.
PEP 3156 - Asynchronous IO Support Rebooted
http://python.org/dev/peps/pep-3156/

You can read the pep if you want, but it includes a generalized event loop interface. The prototype (partial) implementation includes (or will) a default event loop. However, the intention is that it can be replaced by (or maybe work with) adapters for existing event loops, including that of gui frameworks. Being able write a tk loop adapter and easily add io events and handlers to work along side with tk key and mouse events and write to a widjet should be an interesting test of the new framework.

--
Terry Jan Reedy

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

Reply via email to