From 99eabff8744b8c0a031909b00f033beb867e50b2 Mon Sep 17 00:00:00 2001 From: Revertron Date: Tue, 16 Mar 2021 20:54:44 +0100 Subject: [PATCH] Refactored setup of mining threads. --- src/keys.rs | 10 ++-------- src/miner.rs | 10 ++-------- src/utils.rs | 13 +++++++++++++ 3 files changed, 17 insertions(+), 16 deletions(-) diff --git a/src/keys.rs b/src/keys.rs index 029e37e..7462b83 100644 --- a/src/keys.rs +++ b/src/keys.rs @@ -15,11 +15,9 @@ use crypto::ed25519::{keypair, signature, verify}; use log::{debug, error, info, trace, warn}; use rand::{Rng, RngCore, thread_rng}; use serde::{Deserialize, Serialize}; -#[cfg(not(target_os = "macos"))] -use thread_priority::*; use crate::blockchain::hash_utils::*; -use crate::Context; +use crate::{Context, setup_miner_thread}; use crate::event::Event; use crate::blockchain::KEYSTORE_DIFFICULTY; use crate::bytes::Bytes; @@ -124,11 +122,7 @@ pub fn create_key(context: Arc>) { let mining = mining.clone(); let miners_count = miners_count.clone(); thread::spawn(move || { - #[cfg(not(target_os = "macos"))] - { - let _ = set_current_thread_priority(ThreadPriority::Min); - let _ = set_current_thread_ideal_processor(IdealProcessor::from(cpu as u32)); - } + setup_miner_thread(cpu as u32); miners_count.fetch_add(1, atomic::Ordering::SeqCst); match generate_key(KEYSTORE_DIFFICULTY, mining.clone()) { None => { diff --git a/src/miner.rs b/src/miner.rs index b622994..713bfa4 100644 --- a/src/miner.rs +++ b/src/miner.rs @@ -8,10 +8,8 @@ use crypto::digest::Digest; #[allow(unused_imports)] use log::{debug, error, info, trace, warn}; use num_cpus; -#[cfg(not(target_os = "macos"))] -use thread_priority::*; -use crate::{Block, Bytes, Context}; +use crate::{Block, Bytes, Context, setup_miner_thread}; use crate::blockchain::{BLOCK_DIFFICULTY, CHAIN_VERSION, LOCKER_DIFFICULTY, KEYSTORE_DIFFICULTY}; use crate::blockchain::enums::BlockQuality; use crate::blockchain::hash_utils::*; @@ -167,11 +165,7 @@ impl Miner { true }); - #[cfg(not(target_os = "macos"))] - { - let _ = set_current_thread_priority(ThreadPriority::Min); - let _ = set_current_thread_ideal_processor(IdealProcessor::from(cpu as u32)); - } + setup_miner_thread(cpu as u32); live_threads.fetch_add(1, Ordering::SeqCst); let mut hasher = get_hasher_for_version(block.version); match find_hash(Arc::clone(&context), &mut *hasher, block, Arc::clone(&mining), top_block) { diff --git a/src/utils.rs b/src/utils.rs index 327f118..f378950 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -1,4 +1,6 @@ use std::num; +#[cfg(not(target_os = "macos"))] +use thread_priority::*; /// Convert bytes array to HEX format pub fn to_hex(buf: &[u8]) -> String { @@ -16,6 +18,17 @@ pub fn from_hex(string: &str) -> Result, num::ParseIntError> { .collect() } +#[cfg(not(target_os = "macos"))] +pub fn setup_miner_thread(cpu: u32) { + let _ = set_current_thread_priority(ThreadPriority::Min); + let _ = set_current_thread_ideal_processor(IdealProcessor::from(cpu)); +} + +#[cfg(target_os = "macos")] +pub fn setup_miner_thread(cpu: u32) { + // MacOS is not supported by thread_priority crate +} + pub fn check_domain(name: &str, allow_dots: bool) -> bool { if name.starts_with('.') || name.starts_with('-') || name.ends_with('.') || name.ends_with('-') { return false;