2009/6/1 Helmut Eller heller@common-lisp.net:
To me it looks like the subprocess receives a SIGHUP when the serial connection goes down. At least http://en.wikipedia.org/wiki/SIGHUP mentions that as the historical usage of SIGHUP.
Perhaps it helps if you install a signal handler for SIGHUP to ignore it. It might also help to bind process-connection-type in slime-start-lisp to 'pty instead of nil.
If SIGHUP is the cause, then
(sb-unix::ignore-interrupt sb-unix::sighup)
is the immediate bandaid to making SBCL ignore it. (Caveat: SB-UNIX is an internal implementation package, and the APIs there may change or go away without warning -- if this solves your problem, let us know so that when someone has enough spare cycles we can figure out a supported API for your needs.)
Cheers,
-- Nikodemus