>>>>> "rif" == rif  <[EMAIL PROTECTED]> writes:

  rif> Error in function EXTENSIONS::FIND-A-PTY:  Could not find a pty.
  rif> [Condition of type SIMPLE-ERROR]

the RUN-PROGRAM tty code is rather gross; it uses old-style
iterate-over-invented-names allocation, instead of the modern
alternatives. But that's not the problem here.

  rif> There are NO currently running external processes, but I guess if I
  rif> kill the process from outside CMUCL, the pty's aren't released?  Is
  rif> there a way to release them?

you should always kill processes from within CMUCL, using
EXT:PROCESS-KILL with signal 15 then 9, and then call
EXT:PROCESS-CLOSE to free lisp resources used for the process (ttys in
particular).
  
  rif> Normally I'd just kill CMUCL and start again, but I've got a ton of
  rif> important data in my running image, most of which I can't easily save
  rif> (I'd have to write lots of CLOS save method code in order to do it).

first I would try iterating over EXT::*ACTIVE-PROCESSES* and call
EXT:PROCESS-CLOSE on any dead processes. 
  
Otherwise it may help to use lsof on the CMUCL process to identify
the file descriptors that are ptys, and call UNIX:UNIX-CLOSE on each
one. 
  
-- 
Eric Marsden                          <URL:http://www.laas.fr/~emarsden/>

Reply via email to