Buffered channel to fix not ready (blocking)

This commit is contained in:
obscuren 2014-05-30 13:27:56 +02:00
parent f382221b28
commit e0b6a31613

View File

@ -25,6 +25,7 @@ func NewDefaultMiner(coinbase []byte, ethereum ethchain.EthManager) Miner {
reactChan := make(chan ethutil.React, 1) // This is the channel that receives 'updates' when ever a new transaction or block comes in reactChan := make(chan ethutil.React, 1) // This is the channel that receives 'updates' when ever a new transaction or block comes in
powChan := make(chan []byte, 1) // This is the channel that receives valid sha hases for a given block powChan := make(chan []byte, 1) // This is the channel that receives valid sha hases for a given block
powQuitChan := make(chan ethutil.React, 1) // This is the channel that can exit the miner thread powQuitChan := make(chan ethutil.React, 1) // This is the channel that can exit the miner thread
quitChan := make(chan bool, 1)
ethereum.Reactor().Subscribe("newBlock", reactChan) ethereum.Reactor().Subscribe("newBlock", reactChan)
ethereum.Reactor().Subscribe("newTx:pre", reactChan) ethereum.Reactor().Subscribe("newTx:pre", reactChan)
@ -44,7 +45,7 @@ func NewDefaultMiner(coinbase []byte, ethereum ethchain.EthManager) Miner {
reactChan: reactChan, reactChan: reactChan,
powChan: powChan, powChan: powChan,
powQuitChan: powQuitChan, powQuitChan: powQuitChan,
quitChan: make(chan bool), quitChan: quitChan,
} }
// Insert initial TXs in our little miner 'pool' // Insert initial TXs in our little miner 'pool'