Skip to content

Commit dee1583

Browse files
committed
Don't fetch master commits more than we need to
1 parent e3f8654 commit dee1583

File tree

1 file changed

+24
-21
lines changed

1 file changed

+24
-21
lines changed

site/src/comparison.rs

Lines changed: 24 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -24,24 +24,29 @@ pub async fn handle_triage(
2424
let start = body.start;
2525
let end = body.end;
2626
// Compare against self to get next
27-
let (comparison, master_commits) = futures::join!(
28-
compare(
29-
start.clone(),
30-
start.clone(),
31-
"instructions:u".to_owned(),
32-
data
33-
),
34-
rustc_artifacts::master_commits(),
35-
);
36-
let comparison = comparison?;
37-
let master_commits = master_commits.map_err(|e| e.to_string())?;
27+
let master_commits = rustc_artifacts::master_commits().await?;
28+
let comparison = compare(
29+
start.clone(),
30+
start.clone(),
31+
"instructions:u".to_owned(),
32+
data,
33+
&master_commits,
34+
)
35+
.await?;
3836
let mut after = Bound::Commit(comparison.next(&master_commits).unwrap()); // TODO: handle no next commit
3937

4038
let mut report = HashMap::new();
4139
let mut before = start.clone();
4240

4341
loop {
44-
let comparison = compare(before, after.clone(), "instructions:u".to_owned(), data).await?;
42+
let comparison = compare(
43+
before,
44+
after.clone(),
45+
"instructions:u".to_owned(),
46+
data,
47+
&master_commits,
48+
)
49+
.await?;
4550
log::info!(
4651
"Comparing {} to {}",
4752
comparison.b.commit,
@@ -71,12 +76,9 @@ pub async fn handle_compare(
7176
body: api::days::Request,
7277
data: &InputData,
7378
) -> Result<api::days::Response, BoxedError> {
74-
let (comparison, commits) = futures::join!(
75-
crate::comparison::compare(body.start, body.end, body.stat, data),
76-
rustc_artifacts::master_commits(),
77-
);
78-
let comparison = comparison?;
79-
let commits = commits?;
79+
let commits = rustc_artifacts::master_commits().await?;
80+
let comparison =
81+
crate::comparison::compare(body.start, body.end, body.stat, data, &commits).await?;
8082

8183
let conn = data.conn().await;
8284
let prev = comparison.prev(&commits);
@@ -201,6 +203,7 @@ pub async fn compare(
201203
end: Bound,
202204
stat: String,
203205
data: &InputData,
206+
master_commits: &[rustc_artifacts::Commit],
204207
) -> Result<Comparison, BoxedError> {
205208
let a = data
206209
.data_for(true, start.clone())
@@ -221,9 +224,9 @@ pub async fn compare(
221224
let conn = data.conn().await;
222225

223226
Ok(Comparison {
224-
a: DateData::consume_one(&*conn, a.clone(), &mut responses).await,
227+
a: DateData::consume_one(&*conn, a.clone(), &mut responses, master_commits).await,
225228
a_id: a,
226-
b: DateData::consume_one(&*conn, b.clone(), &mut responses).await,
229+
b: DateData::consume_one(&*conn, b.clone(), &mut responses, master_commits).await,
227230
b_id: b,
228231
})
229232
}
@@ -244,6 +247,7 @@ impl DateData {
244247
conn: &dyn database::Connection,
245248
commit: ArtifactId,
246249
series: &mut [selector::SeriesResponse<T>],
250+
master_commits: &[rustc_artifacts::Commit],
247251
) -> Self
248252
where
249253
T: Iterator<Item = (db::ArtifactId, Option<f64>)>,
@@ -294,7 +298,6 @@ impl DateData {
294298
None
295299
},
296300
pr: if let ArtifactId::Commit(c) = &commit {
297-
let master_commits = rustc_artifacts::master_commits().await.unwrap_or_default();
298301
if let Some(m) = master_commits.iter().find(|m| m.sha == c.sha) {
299302
m.pr
300303
} else {

0 commit comments

Comments
 (0)