pub struct ThreadPool { /* private fields */ }Expand description
A thread pool optimized for I/O operations
Implementations§
Source§impl ThreadPool
impl ThreadPool
Sourcepub fn new(config: ThreadPoolConfig) -> Self
pub fn new(config: ThreadPoolConfig) -> Self
Create a new thread pool with the given configuration
Sourcepub fn submit<F>(&self, worktype: WorkType, task: F) -> Result<()>
pub fn submit<F>(&self, worktype: WorkType, task: F) -> Result<()>
Submit a task to the thread pool
Sourcepub fn submit_batch<F>(&self, worktype: WorkType, tasks: Vec<F>) -> Result<()>
pub fn submit_batch<F>(&self, worktype: WorkType, tasks: Vec<F>) -> Result<()>
Submit a batch of tasks efficiently
Sourcepub fn parallel_map<T, F, R>(
&self,
items: Vec<T>,
_work_type: WorkType,
func: F,
) -> Result<Vec<R>>
pub fn parallel_map<T, F, R>( &self, items: Vec<T>, _work_type: WorkType, func: F, ) -> Result<Vec<R>>
Execute a function with parallel processing
Sourcepub fn get_stats(&self) -> ThreadPoolStats
pub fn get_stats(&self) -> ThreadPoolStats
Get current thread pool statistics
Sourcepub fn pending_tasks(&self) -> usize
pub fn pending_tasks(&self) -> usize
Get the number of pending tasks
Sourcepub fn wait_for_completion(&self) -> Result<()>
pub fn wait_for_completion(&self) -> Result<()>
Wait for all current tasks to complete
Auto Trait Implementations§
impl !RefUnwindSafe for ThreadPool
impl !UnwindSafe for ThreadPool
impl Freeze for ThreadPool
impl Send for ThreadPool
impl Sync for ThreadPool
impl Unpin for ThreadPool
impl UnsafeUnpin for ThreadPool
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
Mutably borrows from an owned value. Read more
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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>
Converts
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>
Converts
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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::RequestSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> PolicyExt for Twhere
T: ?Sized,
impl<T> Read<Exclusive, BecauseExclusive> for Twhere
T: ?Sized,
Source§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
Source§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
The inverse inclusion map: attempts to construct
self from the equivalent element of its
superset. Read moreSource§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
Checks if
self is actually part of its subset T (and can be converted to it).Source§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
Use with care! Same as
self.to_subset but without any property checks. Always succeeds.Source§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
The inclusion map: converts
self to the equivalent element of its superset.