aboutsummaryrefslogtreecommitdiff
path: root/src/time/driver/registration.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/time/driver/registration.rs')
-rw-r--r--src/time/driver/registration.rs56
1 files changed, 0 insertions, 56 deletions
diff --git a/src/time/driver/registration.rs b/src/time/driver/registration.rs
deleted file mode 100644
index 3a0b345..0000000
--- a/src/time/driver/registration.rs
+++ /dev/null
@@ -1,56 +0,0 @@
-use crate::time::driver::{Entry, Handle};
-use crate::time::{Duration, Error, Instant};
-
-use std::sync::Arc;
-use std::task::{self, Poll};
-
-/// Registration with a timer.
-///
-/// The association between a `Delay` instance and a timer is done lazily in
-/// `poll`
-#[derive(Debug)]
-pub(crate) struct Registration {
- entry: Arc<Entry>,
-}
-
-impl Registration {
- pub(crate) fn new(deadline: Instant, duration: Duration) -> Registration {
- let handle = Handle::current();
-
- Registration {
- entry: Entry::new(&handle, deadline, duration),
- }
- }
-
- pub(crate) fn deadline(&self) -> Instant {
- self.entry.time_ref().deadline
- }
-
- pub(crate) fn reset(&mut self, deadline: Instant) {
- unsafe {
- self.entry.time_mut().deadline = deadline;
- }
-
- Entry::reset(&mut self.entry);
- }
-
- pub(crate) fn is_elapsed(&self) -> bool {
- self.entry.is_elapsed()
- }
-
- pub(crate) fn poll_elapsed(&self, cx: &mut task::Context<'_>) -> Poll<Result<(), Error>> {
- // Keep track of task budget
- let coop = ready!(crate::coop::poll_proceed(cx));
-
- self.entry.poll_elapsed(cx).map(move |r| {
- coop.made_progress();
- r
- })
- }
-}
-
-impl Drop for Registration {
- fn drop(&mut self) {
- Entry::cancel(&self.entry);
- }
-}