socket-accept for stream-server-usocket in backend/lispworks.lisp needs to check that the socket it got from comm::accept-connection-to-socket or comm::get-fd-from-socket is not NIL, because both of these can return NIL for failures.
What it should do if it is NIL is not obvious. LispWorks has a mechanism that re-tries until some number of consecutive failures, and then closes the accepting socket and tries to re-open it.
Maybe it should take another keyword like :error-handling to tell it what to do.
At the moment it gets an error of type usocket:invalid-socket-error inside the call make-stream-socket. A minimal change would be to add an accept-error condition and to signal an erro with it.
socket-accept for stream-server-usocket in backend/lispworks.lisp needs to check that the socket it got from comm::accept-connection-to-socket or comm::get-fd-from-socket is not NIL, because both of these can return NIL for failures.
What it should do if it is NIL is not obvious. LispWorks has a mechanism that re-tries until some number of consecutive failures, and then closes the accepting socket and tries to re-open it.
Maybe it should take another keyword like :error-handling to tell it what to do.
At the moment it gets an error of type usocket:invalid-socket-error inside the call make-stream-socket. A minimal change would be to add an accept-error condition and to signal an erro with it.