From 4c961482aae6e9cde6fde908b0193113443e33c6 Mon Sep 17 00:00:00 2001 From: Taiki Endo Date: Fri, 30 Aug 2019 02:06:50 +0900 Subject: [PATCH] Set ThreadPool::pool_size to 1 if num_cpus::get() returns 0 --- futures-executor/src/thread_pool.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/futures-executor/src/thread_pool.rs b/futures-executor/src/thread_pool.rs index c9a76ebdb6..636cce7062 100644 --- a/futures-executor/src/thread_pool.rs +++ b/futures-executor/src/thread_pool.rs @@ -4,12 +4,13 @@ use futures_core::future::{Future, FutureObj}; use futures_core::task::{Context, Poll, Spawn, SpawnError}; use futures_util::future::FutureExt; use futures_util::task::{ArcWake, waker_ref}; +use std::cmp; +use std::fmt; use std::io; -use std::sync::{Arc, Mutex}; use std::sync::atomic::{AtomicUsize, Ordering}; use std::sync::mpsc; +use std::sync::{Arc, Mutex}; use std::thread; -use std::fmt; /// A general-purpose thread pool for scheduling tasks that poll futures to /// completion. @@ -203,7 +204,7 @@ impl ThreadPoolBuilder { /// See the other methods on this type for details on the defaults. pub fn new() -> ThreadPoolBuilder { ThreadPoolBuilder { - pool_size: num_cpus::get(), + pool_size: cmp::max(1, num_cpus::get()), stack_size: 0, name_prefix: None, after_start: None,