aboutsummaryrefslogtreecommitdiffstats
path: root/miner/agent.go
diff options
context:
space:
mode:
authorobscuren <geffobscura@gmail.com>2015-02-14 23:52:14 +0800
committerobscuren <geffobscura@gmail.com>2015-02-14 23:52:14 +0800
commit32c7ebc51dcb31f21efe1b9c75f2b86cd216f510 (patch)
tree200d8e48da46816b6b741de51dece5d7c15ba17a /miner/agent.go
parent65159d65c8c830342b3b1ca666571997209826c5 (diff)
downloadgo-tangerine-32c7ebc51dcb31f21efe1b9c75f2b86cd216f510.tar.gz
go-tangerine-32c7ebc51dcb31f21efe1b9c75f2b86cd216f510.tar.zst
go-tangerine-32c7ebc51dcb31f21efe1b9c75f2b86cd216f510.zip
Fixed mining & limited hash power
Diffstat (limited to 'miner/agent.go')
-rw-r--r--miner/agent.go19
1 files changed, 11 insertions, 8 deletions
diff --git a/miner/agent.go b/miner/agent.go
index ddd8e6675..9046f5d5a 100644
--- a/miner/agent.go
+++ b/miner/agent.go
@@ -17,32 +17,35 @@ type CpuMiner struct {
func NewCpuMiner(index int, pow pow.PoW) *CpuMiner {
miner := &CpuMiner{
- c: make(chan *types.Block, 1),
- quit: make(chan struct{}),
- quitCurrentOp: make(chan struct{}, 1),
- pow: pow,
- index: index,
+ pow: pow,
+ index: index,
}
- go miner.update()
return miner
}
func (self *CpuMiner) Work() chan<- *types.Block { return self.c }
func (self *CpuMiner) Pow() pow.PoW { return self.pow }
-func (self *CpuMiner) SetNonceCh(ch chan<- Work) { self.returnCh = ch }
+func (self *CpuMiner) SetWorkCh(ch chan<- Work) { self.returnCh = ch }
func (self *CpuMiner) Stop() {
close(self.quit)
close(self.quitCurrentOp)
}
+func (self *CpuMiner) Start() {
+ self.quit = make(chan struct{})
+ self.quitCurrentOp = make(chan struct{}, 1)
+ self.c = make(chan *types.Block, 1)
+
+ go self.update()
+}
+
func (self *CpuMiner) update() {
out:
for {
select {
case block := <-self.c:
- // make sure it's open
self.quitCurrentOp <- struct{}{}
go self.mine(block)