Skip to content

Commit 351705a

Browse files
jimblandyEriKWDev
authored andcommitted
[core] Use a for loop in LifetimeTracker triage code.
A `for` loop is less noisy than a `drain`, which requires: - a `mut` qualifier for a variable whose modified value we never consult - a method name appearing mid-line instead of a control structure name at the front of the line - a range which is always `..`, establishing no restriction at all - a closure instead of a block Structured control flow syntax has a fine pedigree, originating in, among other places, Dijkstrsa's efforts at designing languages in a way that made it easier to formally verify programs written in them (see "A Discipline Of Programming"). There is nothing "more mathematical" about a method call that takes a closure than a `for` loop. Since `for_each` is useless unless the closure has side effects, there's nothing "more functional" about `for_each` here, either. Obsessive use of `for_each` suggests that the author loves Haskell without understanding it.
1 parent e0319f3 commit 351705a

File tree

1 file changed

+12
-12
lines changed

1 file changed

+12
-12
lines changed

wgpu-core/src/device/life.rs

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -517,13 +517,13 @@ impl<A: HalApi> LifetimeTracker<A> {
517517
fn triage_suspected_render_bundles(&mut self, trackers: &Mutex<Tracker<A>>) -> &mut Self {
518518
let mut trackers = trackers.lock();
519519
let suspected_render_bundles = &mut self.suspected_resources.render_bundles;
520-
let mut removed_resources = Self::triage_resources(
520+
let removed_resources = Self::triage_resources(
521521
suspected_render_bundles,
522522
self.active.as_mut_slice(),
523523
&mut trackers.bundles,
524524
|maps| &mut maps.render_bundles,
525525
);
526-
removed_resources.drain(..).for_each(|bundle| {
526+
for bundle in removed_resources {
527527
for v in bundle.used.buffers.write().drain_resources() {
528528
self.suspected_resources
529529
.buffers
@@ -549,20 +549,20 @@ impl<A: HalApi> LifetimeTracker<A> {
549549
.query_sets
550550
.insert(v.as_info().tracker_index(), v);
551551
}
552-
});
552+
}
553553
self
554554
}
555555

556556
fn triage_suspected_bind_groups(&mut self, trackers: &Mutex<Tracker<A>>) -> &mut Self {
557557
let mut trackers = trackers.lock();
558558
let suspected_bind_groups = &mut self.suspected_resources.bind_groups;
559-
let mut removed_resources = Self::triage_resources(
559+
let removed_resources = Self::triage_resources(
560560
suspected_bind_groups,
561561
self.active.as_mut_slice(),
562562
&mut trackers.bind_groups,
563563
|maps| &mut maps.bind_groups,
564564
);
565-
removed_resources.drain(..).for_each(|bind_group| {
565+
for bind_group in removed_resources {
566566
for v in bind_group.used.buffers.drain_resources() {
567567
self.suspected_resources
568568
.buffers
@@ -588,7 +588,7 @@ impl<A: HalApi> LifetimeTracker<A> {
588588
bind_group.layout.as_info().tracker_index(),
589589
bind_group.layout.clone(),
590590
);
591-
});
591+
}
592592
self
593593
}
594594

@@ -693,36 +693,36 @@ impl<A: HalApi> LifetimeTracker<A> {
693693
fn triage_suspected_compute_pipelines(&mut self, trackers: &Mutex<Tracker<A>>) -> &mut Self {
694694
let mut trackers = trackers.lock();
695695
let suspected_compute_pipelines = &mut self.suspected_resources.compute_pipelines;
696-
let mut removed_resources = Self::triage_resources(
696+
let removed_resources = Self::triage_resources(
697697
suspected_compute_pipelines,
698698
self.active.as_mut_slice(),
699699
&mut trackers.compute_pipelines,
700700
|maps| &mut maps.compute_pipelines,
701701
);
702-
removed_resources.drain(..).for_each(|compute_pipeline| {
702+
for compute_pipeline in removed_resources {
703703
self.suspected_resources.pipeline_layouts.insert(
704704
compute_pipeline.layout.as_info().tracker_index(),
705705
compute_pipeline.layout.clone(),
706706
);
707-
});
707+
}
708708
self
709709
}
710710

711711
fn triage_suspected_render_pipelines(&mut self, trackers: &Mutex<Tracker<A>>) -> &mut Self {
712712
let mut trackers = trackers.lock();
713713
let suspected_render_pipelines = &mut self.suspected_resources.render_pipelines;
714-
let mut removed_resources = Self::triage_resources(
714+
let removed_resources = Self::triage_resources(
715715
suspected_render_pipelines,
716716
self.active.as_mut_slice(),
717717
&mut trackers.render_pipelines,
718718
|maps| &mut maps.render_pipelines,
719719
);
720-
removed_resources.drain(..).for_each(|render_pipeline| {
720+
for render_pipeline in removed_resources {
721721
self.suspected_resources.pipeline_layouts.insert(
722722
render_pipeline.layout.as_info().tracker_index(),
723723
render_pipeline.layout.clone(),
724724
);
725-
});
725+
}
726726
self
727727
}
728728

0 commit comments

Comments
 (0)