pub struct ProactorBuilder { /* private fields */ }Expand description
Builder for Proactor.
Implementations§
Source§impl ProactorBuilder
impl ProactorBuilder
Sourcepub fn new() -> ProactorBuilder
pub fn new() -> ProactorBuilder
Create the builder with default config.
Sourcepub fn capacity(&mut self, capacity: u32) -> &mut ProactorBuilder
pub fn capacity(&mut self, capacity: u32) -> &mut ProactorBuilder
Set the capacity of the inner event queue or submission queue, if exists. The default value is 1024.
Sourcepub fn thread_pool_limit(&mut self, value: usize) -> &mut ProactorBuilder
pub fn thread_pool_limit(&mut self, value: usize) -> &mut ProactorBuilder
Set the thread number limit of the inner thread pool, if exists. The default value is 256.
It will be ignored if reuse_thread_pool is set.
Warning: some operations don’t work if the limit is set to zero:
Asyncifyneeds thread pool.- Operations except
Recv*,Send*,Connect,Acceptmay need thread pool.
Sourcepub fn thread_pool_recv_timeout(
&mut self,
timeout: Duration,
) -> &mut ProactorBuilder
pub fn thread_pool_recv_timeout( &mut self, timeout: Duration, ) -> &mut ProactorBuilder
Set the waiting timeout of the inner thread, if exists. The default is 60 seconds.
It will be ignored if reuse_thread_pool is set.
Sourcepub fn reuse_thread_pool(&mut self, pool: AsyncifyPool) -> &mut ProactorBuilder
pub fn reuse_thread_pool(&mut self, pool: AsyncifyPool) -> &mut ProactorBuilder
Set to reuse an existing AsyncifyPool in this proactor.
Sourcepub fn force_reuse_thread_pool(&mut self) -> &mut ProactorBuilder
pub fn force_reuse_thread_pool(&mut self) -> &mut ProactorBuilder
Force reuse the thread pool for each proactor created by this builder,
even reuse_thread_pool is not set.
Sourcepub fn create_or_get_thread_pool(&self) -> AsyncifyPool
pub fn create_or_get_thread_pool(&self) -> AsyncifyPool
Create or reuse the thread pool from the config.
Sourcepub fn sqpoll_idle(&mut self, idle: Duration) -> &mut ProactorBuilder
pub fn sqpoll_idle(&mut self, idle: Duration) -> &mut ProactorBuilder
Set io-uring sqpoll idle milliseconds, when sqpoll_idle is set,
io-uring sqpoll feature will be enabled
§Notes
- Only effective when the
io-uringfeature is enabled idlemust >= 1ms, otherwise will set sqpoll idle 0msidlewill be rounded down
Sourcepub fn coop_taskrun(&mut self, enable: bool) -> &mut ProactorBuilder
pub fn coop_taskrun(&mut self, enable: bool) -> &mut ProactorBuilder
coop_taskrun feature has been available since Linux Kernel 5.19. This
will optimize performance for most cases, especially compio is a single
thread runtime.
However, it can’t run with sqpoll feature.
§Notes
- Only effective when the
io-uringfeature is enabled
Sourcepub fn taskrun_flag(&mut self, enable: bool) -> &mut ProactorBuilder
pub fn taskrun_flag(&mut self, enable: bool) -> &mut ProactorBuilder
taskrun_flag feature has been available since Linux Kernel 5.19. This
allows io-uring driver can know if any cqes are available when try to
push sqe to sq. This should be enabled with
coop_taskrun
§Notes
- Only effective when the
io-uringfeature is enabled
Sourcepub fn register_eventfd(&mut self, fd: i32) -> &mut ProactorBuilder
pub fn register_eventfd(&mut self, fd: i32) -> &mut ProactorBuilder
Sourcepub fn driver_type(&mut self, t: DriverType) -> &mut ProactorBuilder
pub fn driver_type(&mut self, t: DriverType) -> &mut ProactorBuilder
Force a driver type to use. It is ignored if the fusion driver is disabled.
Trait Implementations§
Source§impl Clone for ProactorBuilder
impl Clone for ProactorBuilder
Source§fn clone(&self) -> ProactorBuilder
fn clone(&self) -> ProactorBuilder
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ProactorBuilder
impl Debug for ProactorBuilder
Source§impl Default for ProactorBuilder
impl Default for ProactorBuilder
Source§fn default() -> ProactorBuilder
fn default() -> ProactorBuilder
impl Send for ProactorBuilder
impl Sync for ProactorBuilder
Auto Trait Implementations§
impl Freeze for ProactorBuilder
impl RefUnwindSafe for ProactorBuilder
impl Unpin for ProactorBuilder
impl UnwindSafe for ProactorBuilder
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> 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>
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