[Openmcl-devel] Accessing external process's streams from differen threads.

Stas Boukarev stassats at gmail.com
Fri Mar 20 21:11:55 UTC 2009


How can I access streams of an external process from another thread?
The following code doesn't work:

(let* ((process (ccl:run-program "yes" () :wait nil :output :stream))
       (stream (ccl:external-process-output-stream process)))
  (ccl:process-run-function :foo (lambda () (read-line stream)))
  (ccl:signal-external-process process 15))

> Error: Stream #<BASIC-CHARACTER-INPUT-STREAM ISO-8859-1 (PIPE/5) #x300041128BFD> is private to #<TTY-LISTENER listener(1) [Active] #x300040EFE04D>
> While executing: CCL::CHECK-IOBLOCK-OWNER, in process FOO(3).


;;;
;;; #<PROCESS FOO(3) [Active] #x30004112701D> requires access to Shared Terminal Input
;;; Type (:y 3) to yield control to this thread.
;;;

-- 
With best regards, Stas.



More information about the Openmcl-devel mailing list