"...from little towns with strange names like Smegma, Spasmodic, Frog, and the far-flung Isles of Langerhans".
Someone on SourceForge has a project that includes the name 'spasmodic' so I'm using the name spasmoidal. But this code will always be spasmodic to me. Asynchronous I/O (and other tasks) proceeding in fits and spasms The SpasmodicEngine selects tasks (spasmoids) from a (heapqueue based) priority queue. The tasks are Python 2.5 extended generators (some call them coroutines: PEP 342). The engine calls task.send() with an appropriate argument. One of the library of tasks is Pollster. Pollster calls poll() with for tasks that are waiting I/O. Tasks that are ready for I/O are fed to the priority queue. Spasmodic provides an efficient way to manage a large number of sockets and/or files. Other processing works well too, if it can be subdivided into brief spasms. Project http://code.google.com/p/spasmoidal/ Download http://cheeseshop.python.org/pypi/spasmoidal/0.1.0 -- Doug Fort, Consulting Programmer http://www.dougfort.com -- http://mail.python.org/mailman/listinfo/python-list