From: Thomas L. <ta...@gm...> - 2007-02-23 20:34:25
|
On Thu, 22 Feb 2007 11:29:22 -0800, Ken Hayber wrote: > It seems that there is no way to kill a Task from the outside. The only > way to prematurely end a running task is to have the task's function > (loop) check some flag and 'return' instead of 'yield'. For simple > tasks this is easy but in some cases (multiple yield points) it could be > complex. > > Can/Should we add support to kill a Task? > > For example: > > mytask = tasks.Task(my_func()) > ... > mytask.die() Python 2.5 allows throwing exceptions into a generator, which is probably the best way of doing it (once 2.5 is the base platform). > What about also adding a wait() function so that the main task can wait > for the task to end (synchronize)? Yes, I think every task should itself be (or contain) a Blocker so you can do that. -- Dr Thomas Leonard http://rox.sourceforge.net GPG: 9242 9807 C985 3C07 44A6 8B9A AE07 8280 59A5 3CC1 |