Merge pull request #73 from paritytech/thread_names
Name all spawned threads
This commit is contained in:
commit
960f8f0455
|
@ -4,7 +4,7 @@ use std::net::SocketAddr;
|
|||
use parking_lot::RwLock;
|
||||
use futures::{Future, finished, failed};
|
||||
use futures::stream::Stream;
|
||||
use futures_cpupool::CpuPool;
|
||||
use futures_cpupool::{CpuPool, Builder as CpuPoolBuilder};
|
||||
use tokio_io::IoFuture;
|
||||
use tokio_core::net::{TcpListener, TcpStream};
|
||||
use tokio_core::reactor::{Handle, Remote, Timeout, Interval};
|
||||
|
@ -429,7 +429,10 @@ impl Drop for P2P {
|
|||
|
||||
impl P2P {
|
||||
pub fn new(config: Config, local_sync_node: LocalSyncNodeRef, handle: Handle) -> Result<Self, Box<error::Error>> {
|
||||
let pool = CpuPool::new(config.threads);
|
||||
let pool = CpuPoolBuilder::new()
|
||||
.name_prefix("I/O thread")
|
||||
.pool_size(config.threads)
|
||||
.create();
|
||||
|
||||
let context = try!(Context::new(local_sync_node, pool.clone(), handle.remote().clone(), config.clone()));
|
||||
|
||||
|
|
|
@ -117,8 +117,22 @@ pub fn create_local_sync_node(consensus: ConsensusParams, db: storage::SharedSto
|
|||
let sync_server = Arc::new(ServerImpl::new(peers.clone(), db.clone(), memory_pool.clone(), sync_executor.clone()));
|
||||
let sync_client_core = SynchronizationClientCore::new(sync_client_config, sync_state.clone(), peers.clone(), sync_executor.clone(), sync_chain);
|
||||
let verifier_sink = Arc::new(CoreVerificationSink::new(sync_client_core.clone()));
|
||||
let light_verifier = AsyncVerifier::new(light_chain_verifier, db.clone(), memory_pool.clone(), verifier_sink.clone(), verification_params.clone());
|
||||
let heavy_verifier = AsyncVerifier::new(heavy_chain_verifier, db.clone(), memory_pool.clone(), verifier_sink, verification_params);
|
||||
let light_verifier = AsyncVerifier::new(
|
||||
"Light verification".into(),
|
||||
light_chain_verifier,
|
||||
db.clone(),
|
||||
memory_pool.clone(),
|
||||
verifier_sink.clone(),
|
||||
verification_params.clone(),
|
||||
);
|
||||
let heavy_verifier = AsyncVerifier::new(
|
||||
"Heavy verification".into(),
|
||||
heavy_chain_verifier,
|
||||
db.clone(),
|
||||
memory_pool.clone(),
|
||||
verifier_sink,
|
||||
verification_params,
|
||||
);
|
||||
let sync_client = SynchronizationClient::new(sync_state.clone(), sync_client_core, light_verifier, heavy_verifier);
|
||||
Arc::new(SyncNode::new(consensus, db, memory_pool, peers, sync_state, sync_client, sync_server))
|
||||
}
|
||||
|
|
|
@ -175,12 +175,19 @@ impl VerificationTask {
|
|||
|
||||
impl AsyncVerifier {
|
||||
/// Create new async verifier
|
||||
pub fn new<T: VerificationSink>(verifier: Arc<ChainVerifier>, storage: StorageRef, memory_pool: MemoryPoolRef, sink: Arc<T>, verification_params: VerificationParameters) -> Self {
|
||||
pub fn new<T: VerificationSink>(
|
||||
thread_name: String,
|
||||
verifier: Arc<ChainVerifier>,
|
||||
storage: StorageRef,
|
||||
memory_pool: MemoryPoolRef,
|
||||
sink: Arc<T>,
|
||||
verification_params: VerificationParameters,
|
||||
) -> Self {
|
||||
let (verification_work_sender, verification_work_receiver) = channel();
|
||||
AsyncVerifier {
|
||||
verification_work_sender: Mutex::new(verification_work_sender),
|
||||
verification_worker_thread: Some(thread::Builder::new()
|
||||
.name("Sync verification thread".to_string())
|
||||
.name(thread_name)
|
||||
.spawn(move || {
|
||||
let verifier = ChainVerifierWrapper::new(verifier, &storage, verification_params);
|
||||
AsyncVerifier::verification_worker_proc(sink, storage, memory_pool, verifier, verification_work_receiver)
|
||||
|
|
Loading…
Reference in New Issue