On Thu, Mar 5, 2009 at 1:09 PM, Bill Janssen <janssen at parc.com> wrote: > Josiah Carlson <josiah.carlson at gmail.com> wrote: > >> On Thu, Mar 5, 2009 at 12:46 PM, Greg Ewing <greg.ewing at canterbury.ac.nz> wrote: >> > Daniel Stutzbach wrote: >> > >> >> If you have a working select(), it will tell you the sockets on which >> >> read() and write() won't block, so non-blocking reads and writes are not >> >> necessary. >> > >> > No, but there should be an interface that lets you say >> > "when something comes in on this fd, call this function >> > for me". >> > >> > In other words it should be a light wrapper around >> > select/poll/whatever that provides a callback interface. >> >> A read callback, a write callback. What about close, error, connect, >> and accept callbacks? >> >> I hate to say it (not really), but that's pretty much the handle_*() >> methods of asyncore :/ . > > What asyncore was missing was a timer API (a way to register functions > to be called periodically). Then it would be pretty much like any other > event loop system. There are two variants of patches to offer timer API functionality in the bug tracker right now. One from Giampaolo that uses a variant of Twisted's scheduler, one from me that uses an updated sched.py . Giampaolo's is more complete (it has documentation and tests), but mine is more efficient with nontrivial task lists. - Josiah
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4