Skip to main content

AcceptLoop

Struct AcceptLoop 

Source
pub struct AcceptLoop { /* private fields */ }
Expand description

Accept loop for network listeners.

The loop runs on its own threads and passes accepted connections to the server.

Implementations§

Source§

impl AcceptLoop

Source

pub fn new() -> AcceptLoop

Creates an accept loop with one accept thread.

§Panics

Panics if the poller cannot be created.

Source

pub fn name<T: AsRef<str>>(&mut self, name: T)

Sets the server name.

The first accept thread is named {name}:accept, additional threads are named {name}:accept{n}.

Source

pub fn acceptors(&mut self, num: usize)

Sets the number of accept threads.

Every TCP listener is replicated with SO_REUSEPORT, so each accept thread has its own socket for the same address and the kernel spreads incoming connections between them. Unix domain listeners are served by the first thread only.

Multiple accept threads are supported on Linux and Android. On other platforms, a single thread is used.

§Panics

Panics if a poller cannot be created.

Source

pub fn notify(&self) -> AcceptNotify

Returns a handle for sending commands to the loop.

Source

pub fn testing(&mut self)

Enables test mode, which skips the exit delay on stop.

Source

pub fn start(self, socks: Vec<(Token, Listener)>, srv: Server)

Starts the accept loop on new threads.

Blocks until the listeners are registered.

Trait Implementations§

Source§

impl Debug for AcceptLoop

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for AcceptLoop

Source§

fn default() -> Self

Returns the “default value” for a type. Read more

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V