From 200e9dfa29d03ba4c881b0e9fb620b7ff4910ef8 Mon Sep 17 00:00:00 2001
From: Bradley Olson <34992650+BradleyOlson64@users.noreply.github.com>
Date: Thu, 16 Mar 2023 02:00:56 -0700
Subject: [PATCH] Issue 4393: Correcting Unnecessary Use of Arc (#6882)
* Added participation and queue sizes metrics
* First draft of all metric code
* Tests pass
* Changed Metrics to field on participation + queues
* fmt
* Improving naming
* Refactor, placing timer in ParticipationRequest
* fmt
* Final cleanup
* Revert "Final cleanup"
This reverts commit 02e5608df64b2e0f7810905e4508673b2037d351.
* Changing metric names
* Implementing Eq only for unit tests
* fmt
* Removing Clone trait from ParticipationRequest
* fmt
* Moved clone functionality to tests helper
---
.../dispute-coordinator/src/initialized.rs | 2 +-
.../node/core/dispute-coordinator/src/lib.rs | 2 +-
.../src/participation/queues/mod.rs | 12 +++---
.../src/participation/queues/tests.rs | 41 ++++++++++++-------
.../src/participation/tests.rs | 2 +-
5 files changed, 35 insertions(+), 24 deletions(-)
diff --git a/polkadot/node/core/dispute-coordinator/src/initialized.rs b/polkadot/node/core/dispute-coordinator/src/initialized.rs
index 620c58fbb7..2dbba5be32 100644
--- a/polkadot/node/core/dispute-coordinator/src/initialized.rs
+++ b/polkadot/node/core/dispute-coordinator/src/initialized.rs
@@ -916,7 +916,7 @@ impl Initialized {
} else {
self.metrics.on_queued_best_effort_participation();
}
- let request_timer = Arc::new(self.metrics.time_participation_pipeline());
+ let request_timer = self.metrics.time_participation_pipeline();
let r = self
.participation
.queue_participation(
diff --git a/polkadot/node/core/dispute-coordinator/src/lib.rs b/polkadot/node/core/dispute-coordinator/src/lib.rs
index de155c1e8f..d82c3a06c6 100644
--- a/polkadot/node/core/dispute-coordinator/src/lib.rs
+++ b/polkadot/node/core/dispute-coordinator/src/lib.rs
@@ -347,7 +347,7 @@ impl DisputeCoordinatorSubsystem {
?candidate_hash,
"Found valid dispute, with no vote from us on startup - participating."
);
- let request_timer = Arc::new(self.metrics.time_participation_pipeline());
+ let request_timer = self.metrics.time_participation_pipeline();
participation_requests.push((
ParticipationPriority::with_priority_if(is_included),
ParticipationRequest::new(
diff --git a/polkadot/node/core/dispute-coordinator/src/participation/queues/mod.rs b/polkadot/node/core/dispute-coordinator/src/participation/queues/mod.rs
index cbfb71e20b..ebe742ac8f 100644
--- a/polkadot/node/core/dispute-coordinator/src/participation/queues/mod.rs
+++ b/polkadot/node/core/dispute-coordinator/src/participation/queues/mod.rs
@@ -14,7 +14,7 @@
// You should have received a copy of the GNU General Public License
// along with Polkadot. If not, see .
-use std::{cmp::Ordering, collections::BTreeMap, sync::Arc};
+use std::{cmp::Ordering, collections::BTreeMap};
use futures::channel::oneshot;
use polkadot_node_subsystem::{messages::ChainApiMessage, overseer};
@@ -65,12 +65,12 @@ pub struct Queues {
}
/// A dispute participation request that can be queued.
-#[derive(Debug, Clone)]
+#[derive(Debug)]
pub struct ParticipationRequest {
candidate_hash: CandidateHash,
candidate_receipt: CandidateReceipt,
session: SessionIndex,
- _request_timer: Arc