@@ -24,24 +24,29 @@ pub async fn handle_triage(
24
24
let start = body. start ;
25
25
let end = body. end ;
26
26
// 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 ?;
38
36
let mut after = Bound :: Commit ( comparison. next ( & master_commits) . unwrap ( ) ) ; // TODO: handle no next commit
39
37
40
38
let mut report = HashMap :: new ( ) ;
41
39
let mut before = start. clone ( ) ;
42
40
43
41
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 ?;
45
50
log:: info!(
46
51
"Comparing {} to {}" ,
47
52
comparison. b. commit,
@@ -71,12 +76,9 @@ pub async fn handle_compare(
71
76
body : api:: days:: Request ,
72
77
data : & InputData ,
73
78
) -> 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 ?;
80
82
81
83
let conn = data. conn ( ) . await ;
82
84
let prev = comparison. prev ( & commits) ;
@@ -201,6 +203,7 @@ pub async fn compare(
201
203
end : Bound ,
202
204
stat : String ,
203
205
data : & InputData ,
206
+ master_commits : & [ rustc_artifacts:: Commit ] ,
204
207
) -> Result < Comparison , BoxedError > {
205
208
let a = data
206
209
. data_for ( true , start. clone ( ) )
@@ -221,9 +224,9 @@ pub async fn compare(
221
224
let conn = data. conn ( ) . await ;
222
225
223
226
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 ,
225
228
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 ,
227
230
b_id : b,
228
231
} )
229
232
}
@@ -244,6 +247,7 @@ impl DateData {
244
247
conn : & dyn database:: Connection ,
245
248
commit : ArtifactId ,
246
249
series : & mut [ selector:: SeriesResponse < T > ] ,
250
+ master_commits : & [ rustc_artifacts:: Commit ] ,
247
251
) -> Self
248
252
where
249
253
T : Iterator < Item = ( db:: ArtifactId , Option < f64 > ) > ,
@@ -294,7 +298,6 @@ impl DateData {
294
298
None
295
299
} ,
296
300
pr : if let ArtifactId :: Commit ( c) = & commit {
297
- let master_commits = rustc_artifacts:: master_commits ( ) . await . unwrap_or_default ( ) ;
298
301
if let Some ( m) = master_commits. iter ( ) . find ( |m| m. sha == c. sha ) {
299
302
m. pr
300
303
} else {
0 commit comments