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))
