diff options
author | zelig <viktor.tron@gmail.com> | 2014-07-05 02:48:37 +0800 |
---|---|---|
committer | zelig <viktor.tron@gmail.com> | 2014-07-05 02:48:37 +0800 |
commit | 1e4ae24126d21305c8fcbebd057ce4ec28ddd242 (patch) | |
tree | ae8b9032f4035315e590bddc406c53db1cfe96ad /ethereum | |
parent | 9754c01f561d2a9885e6fe06fe5ee459daff68e4 (diff) | |
download | go-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.go | 16 |
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 { |