aboutsummaryrefslogtreecommitdiff
path: root/plugin/evm/vm.go
diff options
context:
space:
mode:
authorAaron Buchwald <[email protected]>2020-09-17 14:32:42 -0400
committerAaron Buchwald <[email protected]>2020-09-17 14:32:42 -0400
commit1a17fcec0e23aba017e3641c708e40e79be8e153 (patch)
tree7289033ef69b18c80885c6e4e709920aeb957faa /plugin/evm/vm.go
parentb9cb07277a70f126e5ce098faff6fb88cab6c29a (diff)
move wg add outside of goroutines to prevent race conditionv0.3.0-rc.3
Diffstat (limited to 'plugin/evm/vm.go')
-rw-r--r--plugin/evm/vm.go4
1 files changed, 2 insertions, 2 deletions
diff --git a/plugin/evm/vm.go b/plugin/evm/vm.go
index 583a0c5..92e51e6 100644
--- a/plugin/evm/vm.go
+++ b/plugin/evm/vm.go
@@ -358,6 +358,7 @@ func (vm *VM) Initialize(
vm.shutdownSubmitChan = make(chan struct{}, 1)
//chain.GetTxPool().SubscribeNewHeadEvent(vm.newTxPoolHeadChan)
vm.newTxPoolHeadChan = vm.chain.SubscribeNewMinedBlockEvent()
+ vm.shutdownWg.Add(1)
go ctx.Log.RecoverAndPanic(vm.awaitTxPoolStabilized)
chain.Start()
@@ -385,6 +386,7 @@ func (vm *VM) Initialize(
log.Info(fmt.Sprintf("lastAccepted = %s", vm.lastAccepted.ethBlock.Hash().Hex()))
// TODO: shutdown this go routine
+ vm.shutdownWg.Add(1)
go vm.ctx.Log.RecoverAndPanic(vm.awaitSubmittedTxs)
vm.codec = Codec
@@ -728,7 +730,6 @@ func (vm *VM) writeBackMetadata() {
// expected block hash
// Waits for signal to shutdown from txPoolStabilizedShutdownChan chan
func (vm *VM) awaitTxPoolStabilized() {
- vm.shutdownWg.Add(1)
for {
select {
case e := <-vm.newTxPoolHeadChan.Chan():
@@ -750,7 +751,6 @@ func (vm *VM) awaitTxPoolStabilized() {
}
func (vm *VM) awaitSubmittedTxs() {
- vm.shutdownWg.Add(1)
vm.txSubmitChan = vm.chain.GetTxSubmitCh()
for {
select {