Skip to content

Commit 0376a67

Browse files
committed
sim-lib/refactor: pass report logger into results method
We're going to need to start the report logger in its own task in the commit that follows (so that we can log every minute). This preparatory commit refactors creations of a PaymentResultLogger so that we can easily spin up its run task in our existing join set.
1 parent 6ac6d9a commit 0376a67

File tree

1 file changed

+10
-4
lines changed

1 file changed

+10
-4
lines changed

sim-lib/src/lib.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -549,7 +549,10 @@ impl Simulation {
549549
listener.clone(),
550550
));
551551

552+
let result_logger = Arc::new(Mutex::new(PaymentResultLogger::new()));
553+
552554
tasks.spawn(consume_simulation_results(
555+
result_logger,
553556
results_receiver,
554557
listener,
555558
self.print_batch_size,
@@ -874,21 +877,25 @@ async fn produce_random_events<N: NetworkGenerator, A: PaymentGenerator + Displa
874877
}
875878

876879
async fn consume_simulation_results(
880+
logger: Arc<Mutex<PaymentResultLogger>>,
877881
receiver: Receiver<(Payment, PaymentResult)>,
878882
listener: Listener,
879883
print_batch_size: u32,
880884
no_results: bool,
881885
) {
882886
log::debug!("Simulation results consumer started.");
883887

884-
if let Err(e) = write_payment_results(receiver, listener, print_batch_size, no_results).await {
888+
if let Err(e) =
889+
write_payment_results(logger, receiver, listener, print_batch_size, no_results).await
890+
{
885891
log::error!("Error while reporting payment results: {:?}.", e);
886892
}
887893

888894
log::debug!("Simulation results consumer exiting.");
889895
}
890896

891897
async fn write_payment_results(
898+
logger: Arc<Mutex<PaymentResultLogger>>,
892899
mut receiver: Receiver<(Payment, PaymentResult)>,
893900
listener: Listener,
894901
print_batch_size: u32,
@@ -906,8 +913,7 @@ async fn write_payment_results(
906913
None
907914
};
908915

909-
let mut result_logger = PaymentResultLogger::new();
910-
let mut counter = 0;
916+
let mut counter = 1;
911917
loop {
912918
tokio::select! {
913919
biased;
@@ -918,7 +924,7 @@ async fn write_payment_results(
918924
payment_report = receiver.recv() => {
919925
match payment_report {
920926
Some((details, result)) => {
921-
result_logger.report_result(&details, &result);
927+
logger.lock().await.report_result(&details, &result);
922928
log::trace!("Resolved dispatched payment: {} with: {}.", details, result);
923929

924930
if let Some(ref mut w) = writer {

0 commit comments

Comments
 (0)