From d73c57cff91bb2e51008b14cc6d0d796c0433071 Mon Sep 17 00:00:00 2001 From: "Frederick F. Kautz IV" Date: Tue, 16 Dec 2014 09:36:32 +1300 Subject: [PATCH] Split's JoinStream now creates and returns a read only channel --- pkgs/split/split.go | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/pkgs/split/split.go b/pkgs/split/split.go index de410d174..b99f6e1f5 100644 --- a/pkgs/split/split.go +++ b/pkgs/split/split.go @@ -95,7 +95,13 @@ func SplitStream(reader io.Reader, chunkSize uint64, ch chan SplitMessage) { close(ch) } -func JoinStream(dirname string, inputPrefix string, ch chan JoinMessage) { +func JoinStream(dirname string, inputPrefix string) <-chan JoinMessage { + ch := make(chan JoinMessage) + go joinStreamGoRoutine(dirname, inputPrefix, ch) + return ch +} + +func joinStreamGoRoutine(dirname string, inputPrefix string, ch chan JoinMessage) { var readError error var bytesBuffer bytes.Buffer @@ -147,8 +153,7 @@ func JoinFilesWithPrefix(dirname string, inputPrefix string, outputFile string) return errors.New("Invalid output file") } - ch := make(chan JoinMessage) - go JoinStream(dirname, inputPrefix, ch) + ch := JoinStream(dirname, inputPrefix) var multiReaders []io.Reader var aggregatedLength int64