I have some difficulties with RUN-PROGRAM. It sometimes hangs when
using the :output :stream key parameter. I thought I had it traced
down to when a program only has output on stderr and not on stdout,
but that is not quite right either:


4976 [EMAIL PROTECTED]:~/src/lisp> lisp -noinit        
CMU Common Lisp 19a, running on nex
With core: /usr/opt/cmucl/lib/cmucl/lib/lisp.core
Dumped on: Wed, 2004-07-28 18:51:48+02:00 on lorien
See <http://www.cons.org/cmucl/> for support information.
Loaded subsystems:
    Python 1.1, target Intel x86
    CLOS based on Gerd's PCL 2004/04/14 03:32:47
* (run-program "ls" '() :output :stream)

#<process 24161 :EXITED>
* (run-program "ls" '("-l") :output :stream) ; This hangs


Interrupted at #x40104D3E.
   [Condition of type SIMPLE-CONDITION]

Restarts:
  0: [CONTINUE] Return from BREAK.
  1: [ABORT   ] Return to Top-Level.

Debug  (type H for help)

(UNIX::SIGINT-HANDLER #<unused-arg> #<unused-arg> #.(SYSTEM:INT-SAP #x3FFFC828))
Source: Error finding source: 
Error in function DEBUG::GET-FILE-TOP-LEVEL-FORM:  Source file no longer exists:
  target:code/signal.lisp.
0] 1

* (run-program "ls" '("-h") :output :stream)

#<process 24164 :EXITED>
* (run-program "ls" '("-h") :output :stream)

#<process 24165 :EXITED>
* (run-program "ls" '("-h") :output :stream)

#<process 24166 :EXITED>
* (run-program "ls" '("-l") :output :stream) ; This hangs again


Interrupted at #x40104D3E.
   [Condition of type SIMPLE-CONDITION]
[...]

At the places where I interrupt it, it is because it hangs, and
nothing happens. What is really strange is that giving -h or -1 (one)
as arguments seem to work, whereas -l (small L) makes it hang. If it
returns, reading from the output stream is not a problem. If I remove
the :output key argument, it does not hang either.

Oh, and running the same commands at the shell prompt works of course,
and the output and exit status is similar.


Bj�rn


Reply via email to