Unix socket code

Brian Rice water at tunes.org
Mon Jan 31 01:57:55 PST 2005


Oh yeah, for those of you from the Java camp, we can eventually turn 
this into a much simpler and clearer implementation of what Java does 
for java.nio libraries, which I have been comparing.

On Jan 31, 2005, at 1:55 AM, Brian Rice wrote:

> I've made some extensions to the code, and moved unixsocket.c into 
> unix/socket.c. It builds to a nice, tidy, 10kb library.
>
> Right now there's a preliminary select() wrapper and a fancy trick or 
> two to make file-descriptor sets appear as Net HandleSets in 
> user-land, although the do: protocol is crucially missing. The more 
> basic protocols are pretty much solid and covers all of the main 
> unix-style API's.
>
> What eventually needs to be done in user-land is to provide for 
> Slate-side buffers/queues for the asynchronous I/O, and a system for 
> improving the reliability of data sends, since they can often be 
> incomplete (signaling the number of bytes sent, of course) if large 
> enough. Entailed in this (and probably the do: feature) is an 
> IdentityDictionary mapping handles to their ExternalResources, 
> although at this point I'd like to deliberately slow down and allow 
> people some time to look and figure out what would make the most 
> sense. Feedback and additional features or fixes/refactorings of 
> features are welcome.
>
> The relevant files are:
> src/lib/net/socket.slate (user-land abstract code)
> src/plugins/socket/unix/socket.c (C wrappers)
> src/plugins/socket/unixsocket.slate contains the FFI calls and 
> BSD-sockets-specific userland.
> src/plugins/socket/windows/ is missing an equivalent using the WinSock 
> library.
>
> --
> Brian T. Rice
> LOGOS Research and Development
> http://tunes.org/~water/
>
>
--
Brian T. Rice
LOGOS Research and Development
http://tunes.org/~water/




More information about the Slate mailing list