diff --git a/plugins/analysis/dashboard/fpc_conflictRecord.go b/plugins/analysis/dashboard/fpc_conflictRecord.go index be7c3487e3b53cacbc9a0f2cd9309f47aac96391..9b8dc3c23e03fba9ececa20be55e49be19120b15 100644 --- a/plugins/analysis/dashboard/fpc_conflictRecord.go +++ b/plugins/analysis/dashboard/fpc_conflictRecord.go @@ -13,6 +13,17 @@ func newConflictRecord() *conflictRecord { } } +func (cr *conflictRecord) cleanUp() { + cr.lock.Lock() + defer cr.lock.Unlock() + + for id, conflict := range cr.conflictSet { + if conflict.isFinalized() { + delete(cr.conflictSet, id) + } + } +} + func (cr *conflictRecord) ToFPCUpdate() *FPCUpdate { cr.lock.RLock() defer cr.lock.RUnlock() diff --git a/plugins/analysis/dashboard/fpc_livefeed.go b/plugins/analysis/dashboard/fpc_livefeed.go index 187004bb4b085eeace8f0082335bd75b9cd87ccf..ec782cd56b9831dd9a2e672c9fd703098188bc46 100644 --- a/plugins/analysis/dashboard/fpc_livefeed.go +++ b/plugins/analysis/dashboard/fpc_livefeed.go @@ -55,10 +55,21 @@ func runFPCLiveFeed() { fpcLiveFeedWorkerPool.Start() defer fpcLiveFeedWorkerPool.Stop() - <-shutdownSignal - log.Info("Stopping Analysis[FPCUpdater] ...") - analysis.Events.FPCHeartbeat.Detach(onFPCHeartbeatReceived) - log.Info("Stopping Analysis[FPCUpdater] ... done") + cleanUpTicker := time.NewTicker(1 * time.Minute) + + for { + select { + case <-shutdownSignal: + log.Info("Stopping Analysis[FPCUpdater] ...") + analysis.Events.FPCHeartbeat.Detach(onFPCHeartbeatReceived) + cleanUpTicker.Stop() + log.Info("Stopping Analysis[FPCUpdater] ... done") + case <-cleanUpTicker.C: + log.Info("Cleaning up Finalized Conflicts ...") + recordedConflicts.cleanUp() + log.Info("Cleaning up Finalized Conflicts ... done") + } + } }, shutdown.PriorityDashboard); err != nil { log.Panicf("Failed to start as daemon: %s", err) } diff --git a/plugins/banner/plugin.go b/plugins/banner/plugin.go index 08963564f98a9b6f60d98490693e9cde8b5281f7..1f0936a6cd9cfa90a38a840f1cf200ef46883e33 100644 --- a/plugins/banner/plugin.go +++ b/plugins/banner/plugin.go @@ -14,7 +14,7 @@ var Plugin = node.NewPlugin(PluginName, node.Enabled, configure, run) const ( // AppVersion version number - AppVersion = "v0.666.0" + AppVersion = "v0.2.0" // AppName app code name AppName = "GoShimmer"