From 6f36588f4725a2783e7f70299fb2152ac01e72c5 Mon Sep 17 00:00:00 2001 From: Felix Lange Date: Fri, 20 Jan 2017 14:42:47 +0100 Subject: [PATCH] eth/downloader: remove weird defer statement If the callback crashes, signaling the queue won't help. --- eth/downloader/queue.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/eth/downloader/queue.go b/eth/downloader/queue.go index aed5635236..5be09f37dc 100644 --- a/eth/downloader/queue.go +++ b/eth/downloader/queue.go @@ -1096,10 +1096,6 @@ func (q *queue) DeliverNodeData(id string, data [][]byte, callback func(int, boo progressed, nproc, procerr := q.stateScheduler.Process(process, batch) q.stateWriters += 1 go func() { - // Wake up WaitResults after the state has been written because it might be - // waiting for completion of the pivot block's state download. - defer q.active.Signal() - if procerr == nil { nproc = len(process) procerr = batch.Write() @@ -1111,6 +1107,9 @@ func (q *queue) DeliverNodeData(id string, data [][]byte, callback func(int, boo q.stateWriters -= 1 q.lock.Unlock() callback(nproc, progressed, procerr) + // Wake up WaitResults after the state has been written because it might be + // waiting for completion of the pivot block's state download. + q.active.Signal() }() // If none of the data items were good, it's a stale delivery