mirror of
https://github.com/YGGverse/aquatic.git
synced 2026-04-01 18:25:30 +00:00
Feature-gate CPU pinning, since it only works on Linux
This commit is contained in:
parent
c90c82fb5c
commit
4f8328b70a
22 changed files with 77 additions and 19 deletions
|
|
@ -2,6 +2,7 @@ use std::net::SocketAddr;
|
|||
use std::sync::{atomic::AtomicUsize, Arc};
|
||||
|
||||
use aquatic_cli_helpers::LogLevel;
|
||||
#[cfg(feature = "cpu-pinning")]
|
||||
use aquatic_common::cpu_pinning::CpuPinningConfig;
|
||||
use hashbrown::HashMap;
|
||||
use parking_lot::Mutex;
|
||||
|
|
@ -30,6 +31,7 @@ pub struct Config {
|
|||
pub duration: usize,
|
||||
pub network: NetworkConfig,
|
||||
pub handler: HandlerConfig,
|
||||
#[cfg(feature = "cpu-pinning")]
|
||||
pub cpu_pinning: CpuPinningConfig,
|
||||
}
|
||||
|
||||
|
|
@ -110,6 +112,7 @@ impl Default for Config {
|
|||
duration: 0,
|
||||
network: NetworkConfig::default(),
|
||||
handler: HandlerConfig::default(),
|
||||
#[cfg(feature = "cpu-pinning")]
|
||||
cpu_pinning: CpuPinningConfig::default_for_load_test(),
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ use std::sync::{atomic::Ordering, Arc};
|
|||
use std::thread;
|
||||
use std::time::{Duration, Instant};
|
||||
|
||||
#[cfg(feature = "cpu-pinning")]
|
||||
use aquatic_common::cpu_pinning::{pin_current_if_configured_to, WorkerIndex};
|
||||
use crossbeam_channel::unbounded;
|
||||
use hashbrown::HashMap;
|
||||
|
|
@ -97,6 +98,7 @@ fn run(config: Config) -> ::anyhow::Result<()> {
|
|||
let state = state.clone();
|
||||
|
||||
thread::spawn(move || {
|
||||
#[cfg(feature = "cpu-pinning")]
|
||||
pin_current_if_configured_to(
|
||||
&config.cpu_pinning,
|
||||
config.num_socket_workers as usize,
|
||||
|
|
@ -114,6 +116,7 @@ fn run(config: Config) -> ::anyhow::Result<()> {
|
|||
let response_receiver = response_receiver.clone();
|
||||
|
||||
thread::spawn(move || {
|
||||
#[cfg(feature = "cpu-pinning")]
|
||||
pin_current_if_configured_to(
|
||||
&config.cpu_pinning,
|
||||
config.num_socket_workers as usize,
|
||||
|
|
@ -132,6 +135,7 @@ fn run(config: Config) -> ::anyhow::Result<()> {
|
|||
.expect("bootstrap: add initial request to request queue");
|
||||
}
|
||||
|
||||
#[cfg(feature = "cpu-pinning")]
|
||||
pin_current_if_configured_to(
|
||||
&config.cpu_pinning,
|
||||
config.num_socket_workers as usize,
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue