about summary refs log tree commit diff
path: root/src/libcore/task
diff options
context:
space:
mode:
authorJosef Reinhard Brandl <mail@josefbrandl.de>2018-07-29 10:31:20 +0200
committerJosef Reinhard Brandl <mail@josefbrandl.de>2018-07-29 10:45:17 +0200
commitea25cf1cc6da92c85e7c17753e6b1defd8effee9 (patch)
tree076c3bb3732498824823334ef2bd0b0aa8bbbdbb /src/libcore/task
parentfb0653e40289eecf32f3fac1e84fc69b815ce5cb (diff)
downloadrust-ea25cf1cc6da92c85e7c17753e6b1defd8effee9.tar.gz
rust-ea25cf1cc6da92c85e7c17753e6b1defd8effee9.zip
Fix From<LocalWaker>
Diffstat (limited to 'src/libcore/task')
-rw-r--r--src/libcore/task/wake.rs8
1 files changed, 5 insertions, 3 deletions
diff --git a/src/libcore/task/wake.rs b/src/libcore/task/wake.rs
index 321b432d3f4..d770536ef42 100644
--- a/src/libcore/task/wake.rs
+++ b/src/libcore/task/wake.rs
@@ -42,7 +42,7 @@ impl Waker {
     /// `Arc` type and the safe `Wake` trait.
     #[inline]
     pub unsafe fn new(inner: NonNull<dyn UnsafeWake>) -> Self {
-        Waker { inner: inner }
+        Waker { inner }
     }
 
     /// Wake up the task associated with this `Waker`.
@@ -120,7 +120,7 @@ impl LocalWaker {
     /// on the current thread.
     #[inline]
     pub unsafe fn new(inner: NonNull<dyn UnsafeWake>) -> Self {
-        LocalWaker { inner: inner }
+        LocalWaker { inner }
     }
 
     /// Wake up the task associated with this `LocalWaker`.
@@ -159,7 +159,9 @@ impl LocalWaker {
 impl From<LocalWaker> for Waker {
     #[inline]
     fn from(local_waker: LocalWaker) -> Self {
-        Waker { inner: local_waker.inner }
+        let inner = local_waker.inner;
+        mem::forget(local_waker);
+        Waker { inner }
     }
 }