[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Chicken-users] I/O blocking?
From: |
Peter Bex |
Subject: |
Re: [Chicken-users] I/O blocking? |
Date: |
Sat, 6 Jul 2013 14:25:09 +0200 |
User-agent: |
Mutt/1.4.2.3i |
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