On Tue, 2009-01-27 at 16:45 -0500, Matthew Mondor wrote:
> I've been trying to use the multiplexer and am ambiguous as to two
> things:
> 
> event-base appears to be a class which the user must instanciate.  I
> assume that this is to allow extending the class to allow using user
> data like kqueue does via the udata to have those passed around to event
> handlers?

No, it's to allow using more event queues in multiple threads. On a SMP
machine, you could have two separate threads managing ports 80 and
443(https) each one with its own event loop.

>   If so, it's interesting that the event handler functions do
> not get this object passed along, and that a custom lambda function
> should pass it to another level of custom handler functions.

All you get is that you give the event loop a closure to be invoked when
a certain event - a tuple (fd,type) - is received. If you want to have
private data per handler, close the handler around it: that's what
closures are for.

> The event handler functions are provided an fd rather than a socket.
> Is there an easy provided way to obtain the associated socket from an
> fd, or must a custom index or hash table be used for this?

You need to make a custom map from FDs to sockets.

The event loop is a very low-level mechanism which is quite flexible
precisely because of that: you can build more sophisticated and more
specific mechanisms on top of it. Some use it as a normal event loop,
others have built green threads with it. The choice is yours.

-- 
Stelian Ionescu a.k.a. fe[nl]ix
Quidquid latine dictum sit, altum videtur.

Attachment: signature.asc
Description: This is a digitally signed message part

_______________________________________________
IOLib-devel mailing list
[email protected]
http://common-lisp.net/cgi-bin/mailman/listinfo/iolib-devel

Reply via email to