API

Event notification

Event notification package currently has support for read/write notices of unix fds. It supports kqueue (Mac OS X / FreeBSD) and epoll (Linux 2.6).

EVENT-NOTIFICATION:MAKE-EVENT-QUEUE - Create new event queue
EVENT-NOTIFICATION:ADD-FD - Add fd to queue
EVENT-NOTIFICATION:REMOVE-FD - Remove fd from queue
EVENT-NOTIFICATION:POLL-EVENTS - Poll pending events

Async fd

NIO package has support for asynchronous unix fd's.

NIO:ADD-ASYNC-FD - Add ASYNC-FD to event queue
NIO:ASYNC-FD-READ-FD - Return ASYNC-FD's read fd
NIO:ASYNC-FD-WRITE-FD - Return ASYNC-FD's write fd
NIO:ASYNC-WRITE-SEQ - Write sequence to ASYNC-FD
NIO:CLOSE-ASYNC-FD - Close ASYNC-FD (after writing everything in queue)
NIO:CLOSE-FD - Close unix fd
NIO:FORCE-CLOSE-ASYNC-FD - Drop everything in queue and close ASYNC-FD
NIO:READ-ERROR - Read error
NIO:READ-MORE - Read more data from fd
NIO:REMOVE-ASYNC-FD - Remove ASYNC-FD from event queue
NIO:SET-ACCEPT-FILTER - Set accept-filter for ASYNC-FD
NIO:SET-FD-NONBLOCKING - Set FD to nonblocking mode
NIO:SET-READ-CALLBACK - Set read callback for ASYNC-FD
NIO:WRITE-MORE - Write data from queue to fd

NIO Sockets

NIO package has support for IPv4/IPv6 socket binding and async read/write.

NIO:MAKE-INET-SOCKET
NIO:MAKE-INET6-SOCKET
NIO:BIND-INET-SOCKET
NIO:BIND-INET6-SOCKET
NIO:START-LISTEN
NIO:SOCKET-ACCEPT

NIO-HTTPD

NIO-HTTPD is a simple http server for testing/benchmarking purposes.

NIO-HTTPD:START