On 15.10.12 07:34, Greg Ewing wrote:
Christian Tismer wrote:
My approach would be to first find out how async operations should be modelled the best under the assumption that we have a coroutine concept that works without headaches about yielding in and out from something to whatnot.
I think we already know that. People like Dijkstra and Hoare figured it all out decades ago.
That's what my generator-oriented approach is based on -- using standard techniques for managing concurrency.
Sure, the theory is clear and well-known. Not so clear is which of the concepts to implement to what detail, and things like the C10K problem still are a challenge to solve efficiently for Python. http://www.kegel.com/c10k.html I think it is necessary to take these considerations into account at least and to think about updating large sets of waiting channels efficiently, using appropriate data structures.
After that is settled and gets consensus, then I would think about bearable patterns to implement that using generators. And when we know what we really need, maybe considering more suitable Syntax.
Given that we don't want to use OS threads or greenlets, but we're happy to use generators, all that's left is to find bearable patterns for doing so.
Question: Is it already given that something like greenlets is out of consideration? I did not find a final say on that (but I'm bad at searching...) Is the whole discussion about what would be best, or just "you can choose any implementation provided it's generators" ? :-) cheers - Chris -- Christian Tismer :^) <mailto:tismer@stackless.com> Software Consulting : Have a break! Take a ride on Python's Karl-Liebknecht-Str. 121 : *Starship* http://starship.python.net/ 14482 Potsdam : PGP key -> http://pgp.uni-mainz.de phone +49 173 24 18 776 fax +49 (30) 700143-0023 PGP 0x57F3BF04 9064 F4E1 D754 C2FF 1619 305B C09C 5A3B 57F3 BF04 whom do you want to sponsor today? http://www.stackless.com/