plugeth/eth
Felix Lange 900da3d800 eth/downloader: don't hang for spurious deliveries
Unexpected deliveries could block indefinitely if they arrived at the
right time. The fix is to ensure that the cancellation channel is
always closed when the sync ends, unblocking any deliveries. Also remove
the atomic check for whether a sync is currently running because it
doesn't help and can be misleading.

Cancelling always seems to break the tests though. The downloader
spawned d.process whenever new data arrived, making it somewhat hard to
track when block processing was actually done. Fix this by running
d.process in a dedicated goroutine that is tied to the lifecycle of the
sync. d.process gets notified of new work by the queue instead of being
invoked all the time. This removes a ton of weird workaround code,
including a hairy use of atomic CAS.
2015-11-19 14:18:34 +01:00
..
downloader eth/downloader: don't hang for spurious deliveries 2015-11-19 14:18:34 +01:00
fetcher core, eth, trie: fix data races and merge/review issues 2015-10-21 16:49:55 +03:00
filters cmd/utils, rpc/comms: stop XEth when IPC connection ends 2015-10-29 17:26:26 +01:00
backend_test.go core, eth, trie: fix data races and merge/review issues 2015-10-21 16:49:55 +03:00
backend.go eth: fix error casting regression during database open 2015-11-05 16:59:16 +02:00
cpu_mining.go all: Add GPU mining, disabled by default 2015-10-07 13:19:30 +02:00
gasprice.go eth, xeth: fix GasPriceOracle goroutine leak 2015-10-27 18:43:47 +01:00
gpu_mining.go all: Add GPU mining, disabled by default 2015-10-07 13:19:30 +02:00
handler_test.go core, eth, trie: fix data races and merge/review issues 2015-10-21 16:49:55 +03:00
handler.go eth, p2p, rpc/api: polish protocol info gathering 2015-10-28 12:44:15 +02:00
helper_test.go eth, p2p, rpc/api: polish protocol info gathering 2015-10-28 12:44:15 +02:00
metrics.go core, eth, trie: fix data races and merge/review issues 2015-10-21 16:49:55 +03:00
peer.go eth, p2p, rpc/api: polish protocol info gathering 2015-10-28 12:44:15 +02:00
protocol_test.go eth: clean out light node notions from eth 2015-10-19 10:03:10 +03:00
protocol.go eth, p2p, rpc/api: polish protocol info gathering 2015-10-28 12:44:15 +02:00
sync_test.go eth, p2p, rpc/api: polish protocol info gathering 2015-10-28 12:44:15 +02:00
sync.go eth: don't block sync goroutines that short circuit 2015-10-28 16:41:01 +02:00