pub enum Parallelism {
Serial,
RayonDefaultPool {
busy_timeout: Duration,
},
RayonExistingPool {
pool: Arc<ThreadPool>,
busy_timeout: Option<Duration>,
},
RayonNewPool(usize),
}
Expand description
Degree of parallelism to use when performing walk.
Parallelism happens at the directory level. It will help when walking deep filesystems with many directories. It wont help when reading a single directory with many files.
If you plan to perform lots of per file processing you might want to use Rayon to
Variants§
Serial
Run on calling thread, similar to what happens in the walkdir
crate.
RayonDefaultPool
Run in default rayon thread pool.
Fields
busy_timeout: Duration
Define when we consider the rayon default pool too busy to serve our iteration and abort the iteration, defaulting to 1s.
This can happen if jwalk
is launched from within a par-iter on a pool that only has a single thread,
or if there are many parallel jwalk
invocations that all use the same threadpool, rendering it too busy
to respond within this duration.
RayonExistingPool
Run in existing rayon thread pool
Fields
pool: Arc<ThreadPool>
The pool to spawn our work onto.
busy_timeout: Option<Duration>
Similar to Parallelism::RayonDefaultPool::busy_timeout
if Some
, but can be None
to skip the deadlock check
in case you know that there is at least one free thread available on the pool.
RayonNewPool(usize)
Run in new rayon thread pool with # threads
Trait Implementations§
Source§impl Clone for Parallelism
impl Clone for Parallelism
Source§fn clone(&self) -> Parallelism
fn clone(&self) -> Parallelism
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source
. Read moreAuto Trait Implementations§
impl Freeze for Parallelism
impl !RefUnwindSafe for Parallelism
impl Send for Parallelism
impl Sync for Parallelism
impl Unpin for Parallelism
impl !UnwindSafe for Parallelism
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more