mirror of
https://github.com/tokio-rs/tokio.git
synced 2026-08-27 00:00:12 +02:00
Merge pull request #149 from vorner/loop_id
Provide a publicly-accessible Core ID
This commit is contained in:
@@ -76,6 +76,15 @@ struct Inner {
|
|||||||
timeouts: Slab<(Option<Slot>, TimeoutState)>,
|
timeouts: Slab<(Option<Slot>, TimeoutState)>,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// An unique ID for a Core
|
||||||
|
///
|
||||||
|
/// An ID by which different cores may be distinguished. Can be compared and used as an index in
|
||||||
|
/// a `HashMap`.
|
||||||
|
///
|
||||||
|
/// The ID is globally unique and never reused.
|
||||||
|
#[derive(Clone,Copy,Eq,PartialEq,Hash,Debug)]
|
||||||
|
pub struct CoreId(usize);
|
||||||
|
|
||||||
/// Handle to an event loop, used to construct I/O objects, send messages, and
|
/// Handle to an event loop, used to construct I/O objects, send messages, and
|
||||||
/// otherwise interact indirectly with the event loop itself.
|
/// otherwise interact indirectly with the event loop itself.
|
||||||
///
|
///
|
||||||
@@ -420,6 +429,11 @@ impl Core {
|
|||||||
Message::Run(r) => r.call_box(self),
|
Message::Run(r) => r.call_box(self),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Get the ID of this loop
|
||||||
|
pub fn id(&self) -> CoreId {
|
||||||
|
CoreId(self.inner.borrow().id)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Inner {
|
impl Inner {
|
||||||
@@ -589,6 +603,11 @@ impl Remote {
|
|||||||
lp.inner.borrow_mut().spawn(Box::new(f.into_future()));
|
lp.inner.borrow_mut().spawn(Box::new(f.into_future()));
|
||||||
})));
|
})));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Return the ID of the represented Core
|
||||||
|
pub fn id(&self) -> CoreId {
|
||||||
|
CoreId(self.id)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl Handle {
|
impl Handle {
|
||||||
@@ -620,6 +639,11 @@ impl Handle {
|
|||||||
{
|
{
|
||||||
self.spawn(futures::lazy(f))
|
self.spawn(futures::lazy(f))
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// Return the ID of the represented Core
|
||||||
|
pub fn id(&self) -> CoreId {
|
||||||
|
self.remote.id()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
impl TimeoutState {
|
impl TimeoutState {
|
||||||
|
|||||||
Reference in New Issue
Block a user