Skip to content

Commit e2850b6

Browse files
authored
chore(core): Drop use of num_cpus crate (#13197)
As of the release of Rust 1.61, [`std::thread::available_parallelism` now takes cgroup quotas into account](rust-lang/rust#92697). This puts `available_parallelism` into feature parity with `num_cpus` for our purposes, allowing us to drop our use of this crate.
1 parent 457180f commit e2850b6

File tree

8 files changed

+12
-7
lines changed

8 files changed

+12
-7
lines changed

Cargo.lock

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -266,7 +266,6 @@ nats = { version = "0.20.1", default-features = false, optional = true }
266266
nkeys = { version = "0.2.0", default-features = false, optional = true }
267267
nom = { version = "7.1.1", default-features = false, optional = true }
268268
notify = { version = "4.0.17", default-features = false }
269-
num_cpus = { version = "1.13.1", default-features = false }
270269
once_cell = { version = "1.12", default-features = false }
271270
openssl = { version = "0.10.40", default-features = false, features = ["vendored"] }
272271
openssl-probe = { version = "0.1.5", default-features = false }

src/lib.rs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -159,3 +159,9 @@ where
159159
#[cfg(not(tokio_unstable))]
160160
tokio::spawn(task)
161161
}
162+
163+
pub fn num_threads() -> usize {
164+
std::thread::available_parallelism()
165+
.expect("Could not determine available parallelism")
166+
.into()
167+
}

src/sources/aws_s3/sqs.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ const fn default_true() -> bool {
110110
}
111111

112112
fn default_client_concurrency() -> u32 {
113-
cmp::max(1, num_cpus::get() as u32)
113+
cmp::max(1, crate::num_threads() as u32)
114114
}
115115

116116
#[derive(Debug, Snafu)]

src/sources/aws_sqs/config.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -143,7 +143,7 @@ const fn default_poll_secs() -> u32 {
143143
}
144144

145145
fn default_client_concurrency() -> u32 {
146-
cmp::max(1, num_cpus::get() as u32)
146+
cmp::max(1, crate::num_threads() as u32)
147147
}
148148

149149
const fn default_visibility_timeout_secs() -> u32 {

src/sources/util/tcp/mod.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,8 @@ where
155155
let connection_gauge = OpenGauge::new();
156156
let shutdown_clone = cx.shutdown.clone();
157157

158-
let request_limiter = RequestLimiter::new(MAX_IN_FLIGHT_EVENTS_TARGET, num_cpus::get());
158+
let request_limiter =
159+
RequestLimiter::new(MAX_IN_FLIGHT_EVENTS_TARGET, crate::num_threads());
159160

160161
listener
161162
.accept_stream_limited(max_connections)

src/topology/builder.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ static TRANSFORM_CONCURRENCY_LIMIT: Lazy<usize> = Lazy::new(|| {
6161
crate::app::WORKER_THREADS
6262
.get()
6363
.map(std::num::NonZeroUsize::get)
64-
.unwrap_or_else(num_cpus::get)
64+
.unwrap_or_else(crate::num_threads)
6565
});
6666

6767
pub(self) async fn load_enrichment_tables<'a>(

tests/api.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ fn fork_test<T: std::future::Future<Output = ()>>(test_name: &'static str, fut:
3636
// Since we are spawning the runtime from within a forked process, use one worker less
3737
// to account for the additional process.
3838
// This adjustment mainly serves to not overload CI workers with low resources.
39-
let rt = runtime_constrained(std::cmp::max(1, num_cpus::get() - 1));
39+
let rt = runtime_constrained(std::cmp::max(1, crate::num_threads() - 1));
4040
rt.block_on(fut);
4141
},
4242
)

0 commit comments

Comments
 (0)