This is the mail archive of the guile@cygnus.com mailing list for the guile project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: tselect


Mikael> Thus, the basic idea is that all I/O blocking is "channeled"
Mikael> through scm_internal_select ().

I think this is a good idea.

It is important to expose the event loop not only at the Scheme level,
but also at the C level.  That way it will be easy to plug a library
like ILU (or any GUI library) into the Guile event system.

The best libraries I've seen provide an event loop by default, but
also allow you to replace their event loop with a third party one.
For instance, ILU does this.  If this is achievable, it should be
done, as it makes it much simpler to stick all the different libraries
together -- you can pick the event interface that is most comfortable,
or you can even work with a library that doesn't allow its event loop
to be replaced.

Tk (for one) also provides delays and idle events in its event
handler.  I don't know if this is worth supporting or not.

In general Tk (well, Tcl, now -- the event loop got moved) does a nice
job here at the C level.  The event loop is reentrant (of course --
and this is another requirement), and you can ask that a single event
be handled.

Tom
-- 
tromey@cygnus.com                 Member, League for Programming Freedom