Enum jwalk::Parallelism
source · 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
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.
Run in default rayon thread pool.
RayonExistingPool
Fields
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.
Run in existing rayon thread 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 more