D
Doug.Fort
"...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
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