On Wednesday 18 May 2005 17:39, Guido van Rossum wrote: > I believe that in the discussion about PEP 343 vs. Nick's PEP 3XX > (http://members.iinet.net.au/~ncoghlan/public/pep-3XX.html, still > awaiting PEP moderator approval I believe?) the main difference is > that Nick proposes a way to inject an exception into a generator; and > I've said a few times that I like that idea. > > I'd like to propose to make that a separate PEP, which can combine > elements of PEP 288 and PEP 325. Summary: > > - g.throw(type, value, traceback) causes the specified exception to be > thrown at the place where the generator g is currently suspended. .. > - There's a new exception, GeneratorExit, which can be thrown to cause > a generator to clean up. A generator should not yield a value in > response to this exception. > > - g.close() throws a GeneratorExit exception in the generator, and > catches it (so g.close() itself does not raise an exception). > g.close() is idempotent -- if the generator is already closed, it is a > no-op. If the generator, against the rules, yields another value, it > is nevertheless marked closed.
+1 We're currently using python generators to handle concurrency in a single thread, and this allows a simple scheduler to have a clean way of sending generators a generator shutdown message. (Currently we have to do it another way that is specific to the style of wrapped generator) If you need a volunteer to code this - should it go through, I'm willing to have a go at this. (I can't do this though for 3 weeks or so though due to a crunch at work, and I might be in over my head in offering this.) Michael. -- Michael Sparks, Senior R&D Engineer, Digital Media Group [EMAIL PROTECTED], http://kamaelia.sourceforge.net/ British Broadcasting Corporation, Research and Development Kingswood Warren, Surrey KT20 6NP This e-mail may contain personal views which are not the views of the BBC. _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com