Merge pull request #2267 from karalabe/pending-state-events

core, miner: add PendingStateEvent to track non-log updates.
This commit is contained in:
Péter Szilágyi 2016-03-02 11:24:27 +02:00
commit 5adc461d58
2 changed files with 12 additions and 2 deletions

@ -35,6 +35,9 @@ type PendingLogsEvent struct {
Logs vm.Logs 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. // NewBlockEvent is posted when a block has been imported.
type NewBlockEvent struct{ Block *types.Block } type NewBlockEvent struct{ Block *types.Block }

@ -649,8 +649,15 @@ func (env *Work) commitTransactions(mux *event.TypeMux, transactions types.Trans
coalescedLogs = append(coalescedLogs, logs...) coalescedLogs = append(coalescedLogs, logs...)
} }
} }
if len(coalescedLogs) > 0 { if len(coalescedLogs) > 0 || env.tcount > 0 {
go mux.Post(core.PendingLogsEvent{Logs: coalescedLogs}) 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)
} }
} }