Skip to main content

ListenerHandle

Struct ListenerHandle 

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

Handle to a running listener (SRV-001).

stop performs the graceful shutdown: the accept loop ends, every connection finishes its in-flight requests, drains its writer and closes; stop resolves when the last connection is gone. Dropping the handle signals the same shutdown without waiting.

Implementations§

Source§

impl ListenerHandle

Source

pub fn local_addr(&self) -> SocketAddr

The bound address (resolves port 0 binds).

Source

pub fn snapshot(&self) -> MetricsSnapshot

Point-in-time metrics (SRV-030).

Source

pub fn metrics(&self) -> MetricsRef

A clonable metrics reader that does not carry lifecycle.

Hand this to an exporter task instead of sharing the handle itself, so the handle keeps single ownership and graceful stop stays available.

Source

pub async fn stop(&self)

Graceful shutdown (SRV-001): stop accepting, let every connection drain its in-flight responses, and resolve once all of them closed.

Takes &self so an Arc<ListenerHandle> can still drain — sharing the handle must not cost the graceful path. Calling it twice is safe: the second call observes the shutdown the first one completed.

Trait Implementations§

Source§

impl Debug for ListenerHandle

Source§

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

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

impl Drop for ListenerHandle

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. 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<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, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.