in fastpay/src/bench.rs [62:96]
fn main() {
env_logger::from_env(env_logger::Env::default().default_filter_or("info")).init();
let benchmark = ClientServerBenchmark::from_args();
let (states, orders) = benchmark.make_structures();
// Start the servers on the thread pool
for state in states {
// Make special single-core runtime for each server
let b = benchmark.clone();
thread::spawn(move || {
let mut runtime = Builder::new()
.enable_all()
.basic_scheduler()
.thread_stack_size(15 * 1024 * 1024)
.build()
.unwrap();
runtime.block_on(async move {
let server = b.spawn_server(state).await;
if let Err(err) = server.join().await {
error!("Server ended with an error: {}", err);
}
});
});
}
let mut runtime = Builder::new()
.enable_all()
.basic_scheduler()
.thread_stack_size(15 * 1024 * 1024)
.build()
.unwrap();
runtime.block_on(benchmark.launch_client(orders));
}