about summary refs log tree commit diff
diff options
context:
space:
mode:
authorAndrew Xu <andrewxuyuan@gmail.com>2019-07-03 22:37:33 +0800
committerAndrew Xu <andrewxuyuan@gmail.com>2019-07-06 14:09:41 +0800
commitb14a2ec400aa58a71a8e69a05f8bb41f3b571c2b (patch)
tree0645e92a2b62e3a3921b9235074e13fa35cbc5c3
parent45dda939ab558b244d9099798047ec6e6376cff1 (diff)
downloadrust-b14a2ec400aa58a71a8e69a05f8bb41f3b571c2b.tar.gz
rust-b14a2ec400aa58a71a8e69a05f8bb41f3b571c2b.zip
Remove duplicated arc_wake.rs
The auxiliary file arc_wake.rs is in run-pass/auxiliary and also
ui/async-await/auxiliary. Remove the former one as their contents
are same.
Move run-pass/futures-api.rs to ui/async-await/futures-api.rs as it
needs to use arc_wake.rs.
-rw-r--r--src/test/run-pass/auxiliary/arc_wake.rs64
-rw-r--r--src/test/ui/async-await/futures-api.rs (renamed from src/test/run-pass/futures-api.rs)2
2 files changed, 2 insertions, 64 deletions
diff --git a/src/test/run-pass/auxiliary/arc_wake.rs b/src/test/run-pass/auxiliary/arc_wake.rs
deleted file mode 100644
index c21886f26f4..00000000000
--- a/src/test/run-pass/auxiliary/arc_wake.rs
+++ /dev/null
@@ -1,64 +0,0 @@
-// edition:2018
-
-use std::sync::Arc;
-use std::task::{
-    Waker, RawWaker, RawWakerVTable,
-};
-
-macro_rules! waker_vtable {
-    ($ty:ident) => {
-        &RawWakerVTable::new(
-            clone_arc_raw::<$ty>,
-            wake_arc_raw::<$ty>,
-            wake_by_ref_arc_raw::<$ty>,
-            drop_arc_raw::<$ty>,
-        )
-    };
-}
-
-pub trait ArcWake {
-    fn wake(self: Arc<Self>);
-
-    fn wake_by_ref(arc_self: &Arc<Self>) {
-        arc_self.clone().wake()
-    }
-
-    fn into_waker(wake: Arc<Self>) -> Waker where Self: Sized
-    {
-        let ptr = Arc::into_raw(wake) as *const ();
-
-        unsafe {
-            Waker::from_raw(RawWaker::new(ptr, waker_vtable!(Self)))
-        }
-    }
-}
-
-unsafe fn increase_refcount<T: ArcWake>(data: *const ()) {
-    // Retain Arc by creating a copy
-    let arc: Arc<T> = Arc::from_raw(data as *const T);
-    let arc_clone = arc.clone();
-    // Forget the Arcs again, so that the refcount isn't decrased
-    let _ = Arc::into_raw(arc);
-    let _ = Arc::into_raw(arc_clone);
-}
-
-unsafe fn clone_arc_raw<T: ArcWake>(data: *const ()) -> RawWaker {
-    increase_refcount::<T>(data);
-    RawWaker::new(data, waker_vtable!(T))
-}
-
-unsafe fn drop_arc_raw<T: ArcWake>(data: *const ()) {
-    // Drop Arc
-    let _: Arc<T> = Arc::from_raw(data as *const T);
-}
-
-unsafe fn wake_arc_raw<T: ArcWake>(data: *const ()) {
-    let arc: Arc<T> = Arc::from_raw(data as *const T);
-    ArcWake::wake(arc);
-}
-
-unsafe fn wake_by_ref_arc_raw<T: ArcWake>(data: *const ()) {
-    let arc: Arc<T> = Arc::from_raw(data as *const T);
-    ArcWake::wake_by_ref(&arc);
-    let _ = Arc::into_raw(arc);
-}
diff --git a/src/test/run-pass/futures-api.rs b/src/test/ui/async-await/futures-api.rs
index ee77053fd5b..a7da058de30 100644
--- a/src/test/run-pass/futures-api.rs
+++ b/src/test/ui/async-await/futures-api.rs
@@ -1,3 +1,5 @@
+// run-pass
+
 // aux-build:arc_wake.rs
 
 extern crate arc_wake;