From: Dave R. <ld...@dr...> - 2004-08-20 04:36:22
|
I had been doing some hacking back on SBCL 0.8.10 to add some more proper UDP support to SB-BSD-SOCKETS. I pulled down 0.8.13.77 the other day and was looking to add integrate the changes that I had done with 0.8.10 but it looks like there have been quite a few changes in technique between the two releases. In particular, 0.8.13.77 is a lot longer and seems to use a separate alien copy buffer for all data in the SOCKET-RECEIVE call, whereas 0.8.10 used to just pin the data in the Lisp heap and create an alien pointer into the heap. I'm assuming that the changes were done to deal with thread support (pinning heap objects is really problematic when you have multiple threads that could invoke a GC at any time). Anyway, does somebody understand this code well enough to walk me through some of the low-level rationale that drove the changes so I can make sure I integrate things in a sensible way? Put differently, will the author of these changes to SB-BSD-SOCKETS please stand up? ;-) -- Dave Roberts <ld...@dr...> |