scsh-users
[Top] [All Lists]

run/io help

To: scsh@zurich.csail.mit.edu
Subject: run/io help
From: ZHAO Wei <zhaoway@public1.ptt.js.cn>
Date: Sat, 08 Nov 2003 10:19:52 +0800
Any good eyes find mistakes below ? I got weird results with run/proc+io while run/io seems to be fine.

(define (run/proc+io* thunk)
  (let-values (((pr cw) (pipe))
               ((cr pw) (pipe)))
    (let ((proc (fork (lambda ()
                        (close pr)
                        (close pw)
                        (move->fdes cr 0)
                        (move->fdes cw 1)
                        (with-current-input-port*
                         cr
                         (lambda ()
                           (with-current-output-port* cw thunk)))))))
      (close cr)
      (close cw)
      (values proc pr pw))))


(define-syntax run/proc+io
  (syntax-rules ()
    ((_ . epf)
     (run/proc+io* (lambda () (exec-epf . epf))))))


(define (run/io* thunk)
  (receive (proc i o) (run/proc+io* thunk)
    (values i o)))


(define-syntax run/io
  (syntax-rules ()
    ((_ . epf)
     (run/io* (lambda () (exec-epf . epf))))))

Thanks for reading!

--
zhaoway@public1.ptt.js.cn ><##;> ><#;> iloveqhq at http://bbs.nju.edu.cn
http://c2.com/cgi/wiki?ZhaoWay ><#;> http://advogato.org/person/zhaoway/
keywords nanjing.china.linux.filesystem.iptables.garnome.debian.dpkg.rpm
bash.lex.yacc.gcc.lisp.scheme.o'caml.prolog.latex.php.apache.mysql.emacs


<Prev in Thread] Current Thread [Next in Thread>