From c9ded2d99b0b152b1fc40602d3083e6bda0ba559 Mon Sep 17 00:00:00 2001 From: Jay McCarthy Date: Fri, 20 Aug 2010 08:43:12 -0600 Subject: [PATCH] Being more careful with port resources --- collects/meta/drdr/scm.ss | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/collects/meta/drdr/scm.ss b/collects/meta/drdr/scm.ss index 44f20082c4..dc67a65417 100644 --- a/collects/meta/drdr/scm.ss +++ b/collects/meta/drdr/scm.ss @@ -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)