aboutsummaryrefslogtreecommitdiffstats
path: root/ethereum
diff options
context:
space:
mode:
authorzelig <viktor.tron@gmail.com>2014-07-05 02:48:37 +0800
committerzelig <viktor.tron@gmail.com>2014-07-05 02:48:37 +0800
commit1e4ae24126d21305c8fcbebd057ce4ec28ddd242 (patch)
treeae8b9032f4035315e590bddc406c53db1cfe96ad /ethereum
parent9754c01f561d2a9885e6fe06fe5ee459daff68e4 (diff)
downloadgo-tangerine-1e4ae24126d21305c8fcbebd057ce4ec28ddd242.tar
go-tangerine-1e4ae24126d21305c8fcbebd057ce4ec28ddd242.tar.gz
go-tangerine-1e4ae24126d21305c8fcbebd057ce4ec28ddd242.tar.bz2
go-tangerine-1e4ae24126d21305c8fcbebd057ce4ec28ddd242.tar.lz
go-tangerine-1e4ae24126d21305c8fcbebd057ce4ec28ddd242.tar.xz
go-tangerine-1e4ae24126d21305c8fcbebd057ce4ec28ddd242.tar.zst
go-tangerine-1e4ae24126d21305c8fcbebd057ce4ec28ddd242.zip
use ethreact.Event, unbuffered event channels, subscribe after loop reading from channel starts
Diffstat (limited to 'ethereum')
-rw-r--r--ethereum/javascript_runtime.go16
1 files changed, 8 insertions, 8 deletions
diff --git a/ethereum/javascript_runtime.go b/ethereum/javascript_runtime.go
index 852a50487..6e107e376 100644
--- a/ethereum/javascript_runtime.go
+++ b/ethereum/javascript_runtime.go
@@ -6,6 +6,7 @@ import (
"github.com/ethereum/eth-go/ethchain"
"github.com/ethereum/eth-go/ethlog"
"github.com/ethereum/eth-go/ethpub"
+ "github.com/ethereum/eth-go/ethreact"
"github.com/ethereum/eth-go/ethutil"
"github.com/ethereum/go-ethereum/utils"
"github.com/obscuren/otto"
@@ -22,8 +23,8 @@ type JSRE struct {
vm *otto.Otto
lib *ethpub.PEthereum
- blockChan chan ethutil.React
- changeChan chan ethutil.React
+ blockChan chan ethreact.Event
+ changeChan chan ethreact.Event
quitChan chan bool
objectCb map[string][]otto.Value
@@ -48,8 +49,8 @@ func NewJSRE(ethereum *eth.Ethereum) *JSRE {
ethereum,
otto.New(),
ethpub.NewPEthereum(ethereum),
- make(chan ethutil.React, 1),
- make(chan ethutil.React, 1),
+ make(chan ethreact.Event),
+ make(chan ethreact.Event),
make(chan bool),
make(map[string][]otto.Value),
}
@@ -63,6 +64,9 @@ func NewJSRE(ethereum *eth.Ethereum) *JSRE {
// We have to make sure that, whoever calls this, calls "Stop"
go re.mainLoop()
+ // Subscribe to events
+ reactor := ethereum.Reactor()
+ reactor.Subscribe("newBlock", re.blockChan)
re.Bind("eth", &JSEthereum{re.lib, re.vm})
@@ -108,10 +112,6 @@ func (self *JSRE) Stop() {
}
func (self *JSRE) mainLoop() {
- // Subscribe to events
- reactor := self.ethereum.Reactor()
- reactor.Subscribe("newBlock", self.blockChan)
-
out:
for {
select {