aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ethereum.go4
-rw-r--r--javascript/javascript_runtime.go8
2 files changed, 4 insertions, 8 deletions
diff --git a/ethereum.go b/ethereum.go
index c2d209597..a389c663d 100644
--- a/ethereum.go
+++ b/ethereum.go
@@ -490,6 +490,9 @@ func (s *Ethereum) peerHandler(listener net.Listener) {
}
func (s *Ethereum) Stop() {
+ // Stop eventMux first, it will close all subscriptions.
+ s.eventMux.Stop()
+
// Close the database
defer s.db.Close()
@@ -514,7 +517,6 @@ func (s *Ethereum) Stop() {
}
s.txPool.Stop()
s.stateManager.Stop()
- s.eventMux.Stop()
s.blockPool.Stop()
ethlogger.Infoln("Server stopped")
diff --git a/javascript/javascript_runtime.go b/javascript/javascript_runtime.go
index 704635d97..6c5a87338 100644
--- a/javascript/javascript_runtime.go
+++ b/javascript/javascript_runtime.go
@@ -25,8 +25,7 @@ type JSRE struct {
Vm *otto.Otto
pipe *ethpipe.JSPipe
- events event.Subscription
- quitChan chan bool
+ events event.Subscription
objectCb map[string][]otto.Value
}
@@ -51,7 +50,6 @@ func NewJSRE(ethereum *eth.Ethereum) *JSRE {
otto.New(),
ethpipe.NewJSPipe(ethereum),
nil,
- make(chan bool),
make(map[string][]otto.Value),
}
@@ -104,10 +102,6 @@ func (self *JSRE) Require(file string) error {
func (self *JSRE) Stop() {
self.events.Unsubscribe()
- // Kill the main loop
- self.quitChan <- true
-
- close(self.quitChan)
jsrelogger.Infoln("stopped")
}