]> git.lizzy.rs Git - rust.git/blobdiff - src/libstd/sync/mpsc/blocking.rs
rollup merge of #21438: taralx/kill-racycell
[rust.git] / src / libstd / sync / mpsc / blocking.rs
index a529901272358604752c43e9d73e86fe907d5142..61ffb532d36ad49cb20a97822371d53ac7af5b73 100644 (file)
@@ -13,8 +13,7 @@
 use thread::Thread;
 use sync::atomic::{AtomicBool, ATOMIC_BOOL_INIT, Ordering};
 use sync::Arc;
-use kinds::{Sync, Send};
-use kinds::marker::{NoSend, NoSync};
+use marker::{Sync, Send};
 use mem;
 use clone::Clone;
 
@@ -26,17 +25,19 @@ struct Inner {
 unsafe impl Send for Inner {}
 unsafe impl Sync for Inner {}
 
-#[deriving(Clone)]
+#[derive(Clone)]
 pub struct SignalToken {
     inner: Arc<Inner>,
 }
 
 pub struct WaitToken {
     inner: Arc<Inner>,
-    no_send: NoSend,
-    no_sync: NoSync,
 }
 
+impl !Send for WaitToken {}
+
+impl !Sync for WaitToken {}
+
 pub fn tokens() -> (WaitToken, SignalToken) {
     let inner = Arc::new(Inner {
         thread: Thread::current(),
@@ -44,8 +45,6 @@ pub fn tokens() -> (WaitToken, SignalToken) {
     });
     let wait_token = WaitToken {
         inner: inner.clone(),
-        no_send: NoSend,
-        no_sync: NoSync,
     };
     let signal_token = SignalToken {
         inner: inner