From 0aea94d8048f5e0b9d470bc34c7bc3b624427cae Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 4 May 2009 12:22:01 +0000 Subject: [PATCH] fix file-descriptor leak in process[*]/ports (PR 10229) svn: r14710 original commit: 83cd3964f4e27c38790762dc44c00b0bf57f6fb2 --- collects/mzlib/process.ss | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/collects/mzlib/process.ss b/collects/mzlib/process.ss index 21d246b..24775a3 100644 --- a/collects/mzlib/process.ss +++ b/collects/mzlib/process.ss @@ -71,7 +71,11 @@ (define (streamify-out cout out get-thread?) (if (and cout (not (file-stream-port? cout))) - (let ([t (thread (lambda () (copy-port out cout)))]) + (let ([t (thread (lambda () + (dynamic-wind + void + (lambda () (copy-port out cout)) + (lambda () (close-input-port out)))))]) (and get-thread? t)) out))