mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-08-26 00:00:16 +02:00
Disabling all features means the only dependency is `futures`. Relevant pieces of the API can then be enabled with the following features: - `codec` - `fs` - `io` - `reactor` - `tcp` - `timer` - `udp` - `uds` This also introduces the beginnings of enabling only certain pieces of the `Runtime`. As a start, the entire default runtime API is enabled via the `rt-full` feature.
37 lines
795 B
Rust
37 lines
795 B
Rust
use super::Inner;
|
|
use tokio_threadpool as threadpool;
|
|
|
|
use std::fmt;
|
|
|
|
use futures::{Future, Poll};
|
|
|
|
/// A future that resolves when the Tokio `Runtime` is shut down.
|
|
pub struct Shutdown {
|
|
pub(super) inner: threadpool::Shutdown,
|
|
}
|
|
|
|
impl Shutdown {
|
|
pub(super) fn shutdown_now(inner: Inner) -> Self {
|
|
let inner = inner.pool.shutdown_now();
|
|
Shutdown { inner }
|
|
}
|
|
}
|
|
|
|
impl Future for Shutdown {
|
|
type Item = ();
|
|
type Error = ();
|
|
|
|
fn poll(&mut self) -> Poll<(), ()> {
|
|
try_ready!(self.inner.poll());
|
|
Ok(().into())
|
|
}
|
|
}
|
|
|
|
impl fmt::Debug for Shutdown {
|
|
fn fmt(&self, fmt: &mut fmt::Formatter) -> fmt::Result {
|
|
fmt.debug_struct("Shutdown")
|
|
.field("inner", &"Box<Future<Item = (), Error = ()>>")
|
|
.finish()
|
|
}
|
|
}
|