aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPéter Szilágyi <peterke@gmail.com>2016-03-02 17:24:27 +0800
committerPéter Szilágyi <peterke@gmail.com>2016-03-02 17:24:27 +0800
commit5adc461d58a21f52b3a9e7787732005a46b63e65 (patch)
tree09d816902506bffd0bdb75b9d8adef1283eb0c49
parentc0bf321ec86118eeec23aab974be55b725f93593 (diff)
parentb534106cc81f4df3d1facb46450c775e2eb617b0 (diff)
downloaddexon-5adc461d58a21f52b3a9e7787732005a46b63e65.tar
dexon-5adc461d58a21f52b3a9e7787732005a46b63e65.tar.gz
dexon-5adc461d58a21f52b3a9e7787732005a46b63e65.tar.bz2
dexon-5adc461d58a21f52b3a9e7787732005a46b63e65.tar.lz
dexon-5adc461d58a21f52b3a9e7787732005a46b63e65.tar.xz
dexon-5adc461d58a21f52b3a9e7787732005a46b63e65.tar.zst
dexon-5adc461d58a21f52b3a9e7787732005a46b63e65.zip
Merge pull request #2267 from karalabe/pending-state-events
core, miner: add PendingStateEvent to track non-log updates.
-rw-r--r--core/events.go3
-rw-r--r--miner/worker.go11
2 files changed, 12 insertions, 2 deletions
diff --git a/core/events.go b/core/events.go
index c23206cad..bed8c7b90 100644
--- a/core/events.go
+++ b/core/events.go
@@ -35,6 +35,9 @@ type PendingLogsEvent struct {
Logs vm.Logs
}
+// PendingStateEvent is posted pre mining and notifies of pending state changes.
+type PendingStateEvent struct{}
+
// NewBlockEvent is posted when a block has been imported.
type NewBlockEvent struct{ Block *types.Block }
diff --git a/miner/worker.go b/miner/worker.go
index 71f22ef1c..f3e95cb5f 100644
--- a/miner/worker.go
+++ b/miner/worker.go
@@ -649,8 +649,15 @@ func (env *Work) commitTransactions(mux *event.TypeMux, transactions types.Trans
coalescedLogs = append(coalescedLogs, logs...)
}
}
- if len(coalescedLogs) > 0 {
- go mux.Post(core.PendingLogsEvent{Logs: coalescedLogs})
+ if len(coalescedLogs) > 0 || env.tcount > 0 {
+ go func(logs vm.Logs, tcount int) {
+ if len(logs) > 0 {
+ mux.Post(core.PendingLogsEvent{Logs: logs})
+ }
+ if tcount > 0 {
+ mux.Post(core.PendingStateEvent{})
+ }
+ }(coalescedLogs, env.tcount)
}
}