From a2b92c35e11acd4b87285c9e03721d2adbbea3e9 Mon Sep 17 00:00:00 2001 From: Anatoly Yakovenko Date: Wed, 30 May 2018 13:25:32 -0700 Subject: [PATCH] thread names --- src/crdt.rs | 66 +++++++++++++++++++++++++++++------------------------ 1 file changed, 36 insertions(+), 30 deletions(-) diff --git a/src/crdt.rs b/src/crdt.rs index 63a1e1b993..73c06b49a1 100644 --- a/src/crdt.rs +++ b/src/crdt.rs @@ -29,7 +29,7 @@ use std::io::Cursor; use std::net::{SocketAddr, UdpSocket}; use std::sync::atomic::{AtomicBool, Ordering}; use std::sync::{Arc, RwLock}; -use std::thread::{sleep, spawn, JoinHandle}; +use std::thread::{sleep, Builder, JoinHandle}; use std::time::Duration; use streamer::{BlobReceiver, BlobSender}; @@ -425,18 +425,21 @@ impl Crdt { blob_sender: BlobSender, exit: Arc, ) -> JoinHandle<()> { - spawn(move || loop { - let _ = Self::run_gossip(&obj, &blob_sender, &blob_recycler); - if exit.load(Ordering::Relaxed) { - return; - } - //TODO this should be a tuned parameter - sleep( - obj.read() - .expect("'obj' read lock in pub fn gossip") - .timeout, - ); - }) + Builder::new() + .name("solana-gossip".to_string()) + .spawn(move || loop { + let _ = Self::run_gossip(&obj, &blob_sender, &blob_recycler); + if exit.load(Ordering::Relaxed) { + return; + } + //TODO this should be a tuned parameter + sleep( + obj.read() + .expect("'obj' read lock in pub fn gossip") + .timeout, + ); + }) + .unwrap() } fn run_window_request( window: &Arc>>>, @@ -571,24 +574,27 @@ impl Crdt { response_sender: BlobSender, exit: Arc, ) -> JoinHandle<()> { - spawn(move || loop { - let e = Self::run_listen( - &obj, - &window, - &blob_recycler, - &requests_receiver, - &response_sender, - ); - if e.is_err() { - info!( - "run_listen timeout, table size: {}", - obj.read().unwrap().table.len() + Builder::new() + .name("solana-listen".to_string()) + .spawn(move || loop { + let e = Self::run_listen( + &obj, + &window, + &blob_recycler, + &requests_receiver, + &response_sender, ); - } - if exit.load(Ordering::Relaxed) { - return; - } - }) + if e.is_err() { + info!( + "run_listen timeout, table size: {}", + obj.read().unwrap().table.len() + ); + } + if exit.load(Ordering::Relaxed) { + return; + } + }) + .unwrap() } }