use crate::runtime::time::TimeSource;
use std::fmt;
pub(crate) struct Handle {
pub(super) time_source: TimeSource,
pub(super) inner: super::Inner,
}
impl Handle {
pub(crate) fn time_source(&self) -> &TimeSource {
&self.time_source
}
pub(super) fn is_shutdown(&self) -> bool {
self.inner.is_shutdown()
}
pub(crate) fn unpark(&self) {
#[cfg(feature = "test-util")]
self.inner
.did_wake
.store(true, std::sync::atomic::Ordering::SeqCst);
}
}
cfg_not_rt! {
impl Handle {
#[track_caller]
pub(crate) fn current() -> Self {
panic!("{}", crate::util::error::CONTEXT_MISSING_ERROR)
}
}
}
impl fmt::Debug for Handle {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
write!(f, "Handle")
}
}