From 8f03922f7464f9cd1d73afd9ed4a4f1c8792bc9c Mon Sep 17 00:00:00 2001 From: Delweng Zheng Date: Sat, 16 Jun 2018 12:18:10 +0800 Subject: [PATCH] swarm: chunk.C maybe nil --- swarm/storage/chunker.go | 3 --- swarm/storage/chunker_test.go | 8 ++++++-- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/swarm/storage/chunker.go b/swarm/storage/chunker.go index 2b397f8010..48d81b92d3 100644 --- a/swarm/storage/chunker.go +++ b/swarm/storage/chunker.go @@ -184,8 +184,6 @@ func (self *TreeChunker) Split(data io.Reader, size int64, chunkC chan *Chunk, s func (self *TreeChunker) split(depth int, treeSize int64, key Key, data io.Reader, size int64, jobC chan *hashJob, chunkC chan *Chunk, errC chan error, quitC chan bool, parentWg, swg, wwg *sync.WaitGroup) { - // - for depth > 0 && size < treeSize { treeSize /= self.branches depth-- @@ -482,7 +480,6 @@ func retrieve(key Key, chunkC chan *Chunk, quitC chan bool) *Chunk { } // waiting for the chunk retrieval select { // chunk.Size = int64(binary.LittleEndian.Uint64(chunk.SData[0:8])) - case <-quitC: // this is how we control process leakage (quitC is closed once join is finished (after timeout)) return nil diff --git a/swarm/storage/chunker_test.go b/swarm/storage/chunker_test.go index c8bd12299a..a30d1a78ac 100644 --- a/swarm/storage/chunker_test.go +++ b/swarm/storage/chunker_test.go @@ -113,7 +113,9 @@ func (self *chunkerTester) Append(chunker Splitter, rootKey Key, data io.Reader, // getting data chunk.SData = stored.SData chunk.Size = int64(binary.LittleEndian.Uint64(chunk.SData[0:8])) - close(chunk.C) + if c := chunk.C; c != nil { + close(c) + } } } } @@ -159,7 +161,9 @@ func (self *chunkerTester) Join(chunker Chunker, key Key, c int, chunkC chan *Ch } chunk.SData = stored.SData chunk.Size = int64(binary.LittleEndian.Uint64(chunk.SData[0:8])) - close(chunk.C) + if c := chunk.C; c != nil { + close(c) + } i++ } }