Hello, all!

While I was working on a method of adding Tulip to Urwid (a curses library 
that allows your choice of event loops), I ran across an interesting 
implementation detail that I found myself overwriting _run_once to solve.

Some event loops (Such as Glib and Tornado) have a concept of 'idle 
tasks'-- tasks which are run after the other tasks in the loop have already 
been run (if there were no tasks run this time around, the idle tasks are 
skipped). It doesn't appear that Tulip has a facility for this. Is there a 
particular reason why it doesn't? I'd be happy to contribute some source 
code that would allow it to, if there's interest in adding this feature.

For some idea what I mean, you can take a look at the pull request I sent 
to Urwid here: https://github.com/wardi/urwid/pull/57/files (source issue 
request here: https://github.com/wardi/urwid/pull/57/)

A couple notes about these changes: The ones in this particular diff are 
intended to interrupt the loop for Urwid's workflow, I wouldn't do it for 
the official library that way, instead being sure to use 
call_exception_handler and whatnot, and wrap the tasks in proper Task 
objects rather than just passing the functions around.

Would this be welcome? Is this concept in general defective, and should it 
yield to a more right way to do it?

Reply via email to