From f906112c03118eb29640046db48d63894e9c5505 Mon Sep 17 00:00:00 2001 From: Greg Fitzgerald Date: Sat, 3 Mar 2018 13:52:57 -0700 Subject: [PATCH] Move logging thread's state into a struct --- src/historian.rs | 33 +++++++++++++++++++++++---------- 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/historian.rs b/src/historian.rs index 515a5746e9..197bc10837 100644 --- a/src/historian.rs +++ b/src/historian.rs @@ -26,6 +26,15 @@ pub enum ExitReason { RecvDisconnected, SendDisconnected, } + +pub struct Logger { + pub sender: SyncSender>, + pub receiver: Receiver>, + pub end_hash: Sha256Hash, + pub num_hashes: u64, + pub num_ticks: u64, +} + fn log_event( sender: &SyncSender>, num_hashes: &mut u64, @@ -108,24 +117,28 @@ pub fn create_logger( ) -> JoinHandle<(Entry, ExitReason)> { use std::thread; thread::spawn(move || { - let mut end_hash = start_hash; - let mut num_hashes = 0; - let mut num_ticks = 0; + let mut logger = Logger { + receiver: receiver, + sender: sender, + end_hash: start_hash, + num_hashes: 0, + num_ticks: 0, + }; let epoch = SystemTime::now(); loop { if let Err(err) = log_events( - &receiver, - &sender, - &mut num_hashes, - &mut end_hash, + &logger.receiver, + &logger.sender, + &mut logger.num_hashes, + &mut logger.end_hash, epoch, - &mut num_ticks, + &mut logger.num_ticks, ms_per_tick, ) { return err; } - end_hash = hash(&end_hash); - num_hashes += 1; + logger.end_hash = hash(&logger.end_hash); + logger.num_hashes += 1; } }) }