Is this a problem in Lisp? I know in C that's an issue since you're just calling close on an integer but I had thought lisp would handle that more gracefully. Although I guess the behavior isn't specified since saving an image is outside the spec?
Well...
It is possible that your implementation keeps track of all open "system" streams, and cleans up such objects on its own when you save a core. I would not know if it does that, but I would not rely on it either.
If it doesn't do that, at some point closing a socket means calling close(2) or equivalent system call on the file descriptor / handle -- which means is risky on init.
This is pretty much what I was hoping it would do. I've emailed Franz technical support about what the behavior is in this scenario. I guess I won't be to surprised if they don't want to promise any particular behavior in this area. I'll look into the fork method, should have thought of that before, that would at least give us a working solution on Unix platforms (which is all I need personally). How does Slime feel about platform specific functionality like that?