Fix resource leaks with <duplex-stream>

db4
Slava Pestov 2008-02-16 02:19:19 -06:00
parent 7217e6756a
commit 80e580f91d
2 changed files with 14 additions and 5 deletions

View File

@ -32,9 +32,13 @@ HINTS: do-line vector string ;
readln [ do-line (reverse-complement) ] [ show-seq ] if* ; readln [ do-line (reverse-complement) ] [ show-seq ] if* ;
: reverse-complement ( infile outfile -- ) : reverse-complement ( infile outfile -- )
<file-writer> >r <file-reader> r> <duplex-stream> [ <file-writer> [
500000 <vector> (reverse-complement) swap <file-reader> [
] with-stream ; swap <duplex-stream> [
500000 <vector> (reverse-complement)
] with-stream
] with-disposal
] with-disposal ;
: reverse-complement-in : reverse-complement-in
"extra/benchmark/reverse-complement/reverse-complement-in.txt" "extra/benchmark/reverse-complement/reverse-complement-in.txt"

9
extra/raptor/raptor.factor Normal file → Executable file
View File

@ -45,8 +45,13 @@ USING: io io.files io.streams.lines io.streams.plain io.streams.duplex
listener ; listener ;
: tty-listener ( tty -- ) : tty-listener ( tty -- )
[ <file-reader> ] [ <file-writer> ] bi <duplex-stream> dup <file-reader> [
[ listener ] with-stream ; swap <file-writer> [
<duplex-stream> [
listener
] with-stream
] with-disposal
] with-disposal ;
! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! ! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!