@@ -287,7 +287,9 @@ async fn decide_epoch_root<TYPES: NodeType, I: NodeImplementation<TYPES>>(
287
287
288
288
tokio:: spawn ( async move {
289
289
let membership_clone = membership. clone ( ) ;
290
- let epoch_root_future = tokio:: spawn ( async move {
290
+
291
+ // First add the epoch root to `membership`
292
+ {
291
293
let start = Instant :: now ( ) ;
292
294
if let Err ( e) = Membership :: add_epoch_root (
293
295
Arc :: clone ( membership_clone. membership ( ) ) ,
@@ -299,28 +301,20 @@ async fn decide_epoch_root<TYPES: NodeType, I: NodeImplementation<TYPES>>(
299
301
tracing:: error!( "Failed to add epoch root for epoch {next_epoch_number}: {e}" ) ;
300
302
}
301
303
tracing:: info!( "Time taken to add epoch root: {:?}" , start. elapsed( ) ) ;
302
- } ) ;
304
+ }
303
305
304
306
let membership_clone = membership. clone ( ) ;
305
307
306
- let drb_result_future = tokio:: spawn ( async move {
307
- membership_clone
308
- . compute_drb_result ( next_epoch_number, decided_leaf. clone ( ) )
309
- . await
310
- } ) ;
311
-
312
- let ( _, drb_result) = tokio:: join!( epoch_root_future, drb_result_future) ;
308
+ let drb_result = membership_clone
309
+ . compute_drb_result ( next_epoch_number, decided_leaf. clone ( ) )
310
+ . await ;
313
311
314
312
let drb_result = match drb_result {
315
- Ok ( Ok ( result) ) => result,
313
+ Ok ( result) => result,
316
314
Err ( e) => {
317
315
tracing:: error!( "Failed to compute DRB result from decide: {e}" ) ;
318
316
return ;
319
317
} ,
320
- Ok ( Err ( e) ) => {
321
- tracing:: error!( "Failed to compute DRB result from decide: {e}" ) ;
322
- return ;
323
- } ,
324
318
} ;
325
319
326
320
let start = Instant :: now ( ) ;
0 commit comments