Skip to content
This repository was archived by the owner on Jan 22, 2025. It is now read-only.

Commit 737e473

Browse files
committed
Ensure reinitialize() is maintained for new fields
1 parent 16ac5b3 commit 737e473

File tree

1 file changed

+17
-5
lines changed
  • unified-scheduler-logic/src

1 file changed

+17
-5
lines changed

unified-scheduler-logic/src/lib.rs

+17-5
Original file line numberDiff line numberDiff line change
@@ -738,11 +738,23 @@ impl SchedulingStateMachine {
738738
pub fn reinitialize(&mut self) {
739739
assert!(self.has_no_active_task());
740740
assert_eq!(self.unblocked_task_queue.len(), 0);
741-
self.last_task_index = None;
742-
self.active_task_count.reset_to_zero();
743-
self.handled_task_count.reset_to_zero();
744-
self.unblocked_task_count.reset_to_zero();
745-
self.total_task_count.reset_to_zero();
741+
// nice trick to ensure all fields are handled here if new one is added.
742+
let Self {
743+
last_task_index,
744+
unblocked_task_queue: _,
745+
active_task_count,
746+
handled_task_count,
747+
unblocked_task_count,
748+
total_task_count,
749+
count_token: _,
750+
usage_queue_token: _,
751+
// don't add ".." here
752+
} = self;
753+
*last_task_index = None;
754+
active_task_count.reset_to_zero();
755+
handled_task_count.reset_to_zero();
756+
unblocked_task_count.reset_to_zero();
757+
total_task_count.reset_to_zero();
746758
}
747759

748760
/// Creates a new instance of [`SchedulingStateMachine`] with its `unsafe` fields created as

0 commit comments

Comments
 (0)