Being more careful with port resources
This commit is contained in:
parent
7c3b8eadf8
commit
c9ded2d99b
|
@ -54,12 +54,20 @@
|
|||
(define-syntax-rule (pipe expr exprs ...)
|
||||
(pipe/proc (list (lambda () expr) (lambda () exprs) ...)))
|
||||
|
||||
(define (close-input-port* p)
|
||||
(when p (close-input-port p)))
|
||||
(define (close-output-port* p)
|
||||
(when p (close-output-port p)))
|
||||
|
||||
(define (system/output-port #:k k #:stdout [init-stdout #f] . as)
|
||||
(define _ (printf "~S~n" as))
|
||||
(define-values (sp stdout stdin stderr)
|
||||
(apply subprocess init-stdout #f #f as))
|
||||
(begin0 (k stdout)
|
||||
(subprocess-wait sp)))
|
||||
(subprocess-wait sp)
|
||||
(subprocess-kill sp #t)
|
||||
(close-input-port* stdout)
|
||||
(close-output-port* stdin)
|
||||
(close-input-port* stderr)))
|
||||
|
||||
(define-struct git-push (num author commits) #:prefab)
|
||||
(define-struct git-commit (hash author date msg) #:prefab)
|
||||
|
|
Loading…
Reference in New Issue
Block a user