On Fri, Jul 05, 2013 at 08:55:41PM -0700, Estevo wrote: > >From the docs for the epoll egg: > > "Something I've been considering working on is bindings for libevent. If > someone else wants to work on a libevent egg I'm all for it. If no one else > does it I will." > > Does Chicken block, by default, on file and network I/O, or does it use > something like select/epoll/libev(ent)?
Hello Estevo, CHICKEN core uses plain POSIX poll(), which is portable. On Windows, we currently still use Winsock select(), which is broken for anything but socket descriptors. > If the behavior is to just block, do you foresee that using something like > libev or libevent would have bad interactions with chicken internals (barring > the normal caveats regarding Scheme->C->Scheme ffi callbacks)? Libevent would simply be an extra dependency for little gain. poll() is portable and should be fast enough in all but the most demanding special-case scenarios, and in those cases you'd see much greater performance improvements by changing the port implementations, because that's where the bottlenecks are. Cheers, Peter -- http://www.more-magic.net _______________________________________________ Chicken-users mailing list [email protected] https://lists.nongnu.org/mailman/listinfo/chicken-users
