pub struct ProactorBuilder { /* private fields */ }Expand description
Builder for Proactor.
Implementations§
Source§impl ProactorBuilder
impl ProactorBuilder
Sourcepub fn capacity(&mut self, capacity: u32) -> &mut Self
pub fn capacity(&mut self, capacity: u32) -> &mut Self
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 Self
pub fn thread_pool_limit(&mut self, value: usize) -> &mut Self
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 Self
pub fn thread_pool_recv_timeout(&mut self, timeout: Duration) -> &mut Self
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 Self
pub fn reuse_thread_pool(&mut self, pool: AsyncifyPool) -> &mut Self
Set to reuse an existing AsyncifyPool in this proactor.
Sourcepub fn force_reuse_thread_pool(&mut self) -> &mut Self
pub fn force_reuse_thread_pool(&mut self) -> &mut Self
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 Self
pub fn sqpoll_idle(&mut self, idle: Duration) -> &mut Self
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 Self
pub fn coop_taskrun(&mut self, enable: bool) -> &mut Self
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 Self
pub fn taskrun_flag(&mut self, enable: bool) -> &mut Self
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: RawFd) -> &mut Self
pub fn register_eventfd(&mut self, fd: RawFd) -> &mut Self
Sourcepub fn driver_type(&mut self, t: DriverType) -> &mut Self
pub fn driver_type(&mut self, t: DriverType) -> &mut Self
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 more