From 0175c3063667542f25179c050813cf2b391bba54 Mon Sep 17 00:00:00 2001 From: Silvan Jegen Date: Tue, 29 Nov 2016 20:34:17 +0100 Subject: Make sure we do not deadlock --- manager.go | 23 +++++++++++++---------- 1 file changed, 13 insertions(+), 10 deletions(-) diff --git a/manager.go b/manager.go index 0c933ec..91933f9 100644 --- a/manager.go +++ b/manager.go @@ -59,6 +59,7 @@ func (i *StdinInput) Start() chan *Work { } i.retchan <- &Work{data: bs} } + close(i.retchan) }() return i.retchan @@ -70,21 +71,23 @@ func (f *StringFilter) Filter(ic chan *Work) chan *Work { go func() { for w := range ic { dec := json.NewDecoder(bytes.NewReader(w.data)) + jm := make(map[string]string, 10) - for { - tok, err := dec.Token() - if err == io.EOF { - break - } - if err != nil { - fmt.Printf("Error when reading JSON: %q\n", err) - os.Exit(1) - } - fmt.Printf("Token: %T %v\n", tok, tok) + err := dec.Decode(&jm) + if err == io.EOF { + fmt.Printf("EOF jm: %v\n", jm) + f.retchan <- w + continue + } + if err != nil { + fmt.Printf("Error when decoding JSON: %q\n", err) + w.err = err } + fmt.Printf("jm: %v\n", jm) f.retchan <- w } + close(f.retchan) }() return f.retchan -- cgit v1.2.1-18-gbd029