;; 1- wait
#+clozure (ccl::external-process-wait process)
#+(or cmu scl) (ext:process-wait process)
- #+(and (or clasp ecl) os-unix) (ext:external-process-wait process)
#+sbcl (sb-ext:process-wait process)
;; 2- extract result
#+allegro (sys:reap-os-subprocess :pid process :wait t)
#+clozure (nth-value 1 (ccl:external-process-status process))
#+(or cmu scl) (ext:process-exit-code process)
- #+(or clasp ecl) (nth-value 1 (ext:external-process-wait process))
+ #+(or clasp ecl) (nth-value 1 (ext:external-process-wait process t))
#+lispworks
(if-let ((stream (or (getf process-info :input-stream)
(getf process-info :output-stream)