I've written a small program in CMUCL under FreeBSD to use the kevent() call.
kevent called with no timeout should block until there is an event ready on 
any of the sockets in the provided kqueue. 
I am making the call into kevent within a loop.
What seems to happen is that after a socket has been accepted, i do a read on 
the socket to get the pendeing data (return from kevent on this indicates data 
ready on the socket..size is correct), then when i enter kevent subsequently 
in the loop it returns (not sure if it blocked at all) each time with a return 
result of 0 (zero) data available on the socket.

Running ktrace while this is happening indicates that there are lots of calls 
to gettimeofday going on as well. This is not happening in my program so i am 
wondering if there is automatically some other threads running in cmucl by 
default? And is this messing up my calls to kevent?

If this is the case...how can i turn it off and run cmucl completely single 
threaded? If it is not the case, any ideas?

I have written what i think is an equivalent program in C and it behaves as 
expected.

Any thoughts?

thanks,
brad

bash-2.05b$ lisp
CMU Common Lisp 18e, running on dev1
With core: /usr/local/lib/cmucl/lib/lisp.core
Dumped on: Thu, 2003-04-03 12:07:59-06:00 on cvs2.cons.org
See <http://www.cons.org/cmucl/> for support information.
Loaded subsystems:
    Python 1.1, target Intel x86
    CLOS 18e (based on PCL September 16 92 PCL (f))




Reply via email to