Skip to content

Commit 701b37a

Browse files
authored
Fix order of add_epoch_root and add_drb_result (#3622)
1 parent ea57959 commit 701b37a

File tree

1 file changed

+8
-14
lines changed

1 file changed

+8
-14
lines changed

crates/hotshot/task-impls/src/helpers.rs

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -287,7 +287,9 @@ async fn decide_epoch_root<TYPES: NodeType, I: NodeImplementation<TYPES>>(
287287

288288
tokio::spawn(async move {
289289
let membership_clone = membership.clone();
290-
let epoch_root_future = tokio::spawn(async move {
290+
291+
// First add the epoch root to `membership`
292+
{
291293
let start = Instant::now();
292294
if let Err(e) = Membership::add_epoch_root(
293295
Arc::clone(membership_clone.membership()),
@@ -299,28 +301,20 @@ async fn decide_epoch_root<TYPES: NodeType, I: NodeImplementation<TYPES>>(
299301
tracing::error!("Failed to add epoch root for epoch {next_epoch_number}: {e}");
300302
}
301303
tracing::info!("Time taken to add epoch root: {:?}", start.elapsed());
302-
});
304+
}
303305

304306
let membership_clone = membership.clone();
305307

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;
313311

314312
let drb_result = match drb_result {
315-
Ok(Ok(result)) => result,
313+
Ok(result) => result,
316314
Err(e) => {
317315
tracing::error!("Failed to compute DRB result from decide: {e}");
318316
return;
319317
},
320-
Ok(Err(e)) => {
321-
tracing::error!("Failed to compute DRB result from decide: {e}");
322-
return;
323-
},
324318
};
325319

326320
let start = Instant::now();

0 commit comments

Comments
 (0)