tokio_core::reactor

Struct Core

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

An event loop.

The event loop is the main source of blocking in an application which drives all other I/O events and notifications happening. Each event loop can have multiple handles pointing to it, each of which can then be used to create various I/O objects to interact with the event loop in interesting ways.

Implementations§

Source§

impl Core

Source

pub fn new() -> Result<Core>

Creates a new event loop, returning any error that happened during the creation.

Source

pub fn handle(&self) -> Handle

Returns a handle to this event loop which cannot be sent across threads but can be used as a proxy to the event loop itself.

Handles are cloneable and clones always refer to the same event loop. This handle is typically passed into functions that create I/O objects to bind them to this event loop.

Source

pub fn runtime(&self) -> &Runtime

Returns a reference to the runtime backing the instance

This provides access to the newer features of Tokio.

Source

pub fn remote(&self) -> Remote

Generates a remote handle to this event loop which can be used to spawn tasks from other threads into this event loop.

Source

pub fn run<F>(&mut self, f: F) -> Result<F::Item, F::Error>
where F: Future,

Runs a future until completion, driving the event loop while we’re otherwise waiting for the future to complete.

This function will begin executing the event loop and will finish once the provided future is resolved. Note that the future argument here crucially does not require the 'static nor Send bounds. As a result the future will be “pinned” to not only this thread but also this stack frame.

This function will return the value that the future resolves to once the future has finished. If the future never resolves then this function will never return. Any other futures spawned on this core may still be incomplete when this function returns.

§Panics

This method will not catch panics from polling the future f. If the future panics then it’s the responsibility of the caller to catch that panic and handle it as appropriate.

Source

pub fn turn(&mut self, max_wait: Option<Duration>)

Performs one iteration of the event loop, blocking on waiting for events for at most max_wait (forever if None).

It only makes sense to call this method if you’ve previously spawned a future onto this event loop.

loop { core.turn(None) } is equivalent to calling run with an empty future (one that never finishes).

Source

pub fn id(&self) -> CoreId

Get the ID of this loop

Trait Implementations§

Source§

impl Debug for Core

Source§

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

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

impl<F> Executor<F> for Core
where F: Future<Item = (), Error = ()> + 'static,

Source§

fn execute(&self, future: F) -> Result<(), ExecuteError<F>>

Spawns a future to run on this Executor, typically in the “background”. Read more

Auto Trait Implementations§

§

impl !Freeze for Core

§

impl !RefUnwindSafe for Core

§

impl !Send for Core

§

impl !Sync for Core

§

impl Unpin for Core

§

impl !UnwindSafe for Core

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.