diff --git a/Cargo.lock b/Cargo.lock index bd71fb4828..1e80aea8af 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -2257,6 +2257,7 @@ dependencies = [ "log 0.4.6 (registry+https://github.com/rust-lang/crates.io-index)", "num-derive 0.2.5 (registry+https://github.com/rust-lang/crates.io-index)", "num-traits 0.2.6 (registry+https://github.com/rust-lang/crates.io-index)", + "rand 0.6.5 (registry+https://github.com/rust-lang/crates.io-index)", "rayon 1.0.3 (registry+https://github.com/rust-lang/crates.io-index)", "serde 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", "serde_derive 1.0.90 (registry+https://github.com/rust-lang/crates.io-index)", diff --git a/bench-exchange/Cargo.toml b/bench-exchange/Cargo.toml index bf26d7ca7d..9f2e7d2388 100644 --- a/bench-exchange/Cargo.toml +++ b/bench-exchange/Cargo.toml @@ -16,6 +16,7 @@ itertools = "0.8.0" log = "0.4.6" num-traits = "0.2" num-derive = "0.2" +rand = "0.6.5" rayon = "1.0.3" serde = "1.0.87" serde_derive = "1.0.87" diff --git a/bench-exchange/src/bench.rs b/bench-exchange/src/bench.rs index a62addb681..be540731ac 100644 --- a/bench-exchange/src/bench.rs +++ b/bench-exchange/src/bench.rs @@ -3,6 +3,7 @@ use crate::order_book::*; use itertools::izip; use log::*; +use rand::{thread_rng, Rng}; use rayon::prelude::*; use solana::cluster_info::FULLNODE_PORT_RANGE; use solana::contact_info::ContactInfo; @@ -384,8 +385,9 @@ fn swapper( 'outer: loop { if let Ok(trade_infos) = receiver.try_recv() { let mut tries = 0; + let mut trade_index = 0; while client - .get_balance(&trade_infos[0].trade_account) + .get_balance(&trade_infos[trade_index].trade_account) .unwrap_or(0) == 0 { @@ -399,6 +401,7 @@ fn swapper( } debug!("{} waiting for trades batch to clear", tries); sleep(Duration::from_millis(100)); + trade_index = thread_rng().gen_range(0, trade_infos.len()); } trade_infos.iter().for_each(|info| {