mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-09 20:11:09 +00:00
Drop timers for new requests of active participations (#6974)
* First pass adding logs * fmt * Adjustments * Get rid of extra timers for running participations * fmt * Handling timer discards more elegantly
This commit is contained in:
@@ -160,10 +160,11 @@ impl Participation {
|
||||
&mut self,
|
||||
ctx: &mut Context,
|
||||
priority: ParticipationPriority,
|
||||
req: ParticipationRequest,
|
||||
mut req: ParticipationRequest,
|
||||
) -> Result<()> {
|
||||
// Participation already running - we can ignore that request:
|
||||
// Participation already running - we can ignore that request, discarding its timer:
|
||||
if self.running_participations.contains(req.candidate_hash()) {
|
||||
req.discard_timer();
|
||||
return Ok(())
|
||||
}
|
||||
// Available capacity - participate right away (if we already have a recent block):
|
||||
|
||||
@@ -134,6 +134,11 @@ impl ParticipationRequest {
|
||||
pub fn session(&self) -> SessionIndex {
|
||||
self.session
|
||||
}
|
||||
pub fn discard_timer(&mut self) {
|
||||
if let Some(timer) = self.request_timer.take() {
|
||||
timer.stop_and_discard();
|
||||
}
|
||||
}
|
||||
pub fn into_candidate_info(self) -> (CandidateHash, CandidateReceipt) {
|
||||
let Self { candidate_hash, candidate_receipt, .. } = self;
|
||||
(candidate_hash, candidate_receipt)
|
||||
@@ -246,17 +251,12 @@ impl Queues {
|
||||
// Remove any best effort entry, using it to replace our new
|
||||
// request.
|
||||
if let Some(older_request) = self.best_effort.remove(&comparator) {
|
||||
if let Some(timer) = req.request_timer {
|
||||
timer.stop_and_discard();
|
||||
}
|
||||
req.discard_timer();
|
||||
req = older_request;
|
||||
}
|
||||
// Keeping old request if any.
|
||||
match self.priority.entry(comparator) {
|
||||
Entry::Occupied(_) =>
|
||||
if let Some(timer) = req.request_timer {
|
||||
timer.stop_and_discard();
|
||||
},
|
||||
Entry::Occupied(_) => req.discard_timer(),
|
||||
Entry::Vacant(vac) => {
|
||||
vac.insert(req);
|
||||
},
|
||||
@@ -274,10 +274,7 @@ impl Queues {
|
||||
}
|
||||
// Keeping old request if any.
|
||||
match self.best_effort.entry(comparator) {
|
||||
Entry::Occupied(_) =>
|
||||
if let Some(timer) = req.request_timer {
|
||||
timer.stop_and_discard();
|
||||
},
|
||||
Entry::Occupied(_) => req.discard_timer(),
|
||||
Entry::Vacant(vac) => {
|
||||
vac.insert(req);
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user