Implement Sync for SyncSender

This commit is contained in:
Steven Fackler 2017-06-02 18:35:37 -07:00
parent 107bd67ef7
commit 0f6c01ddb6
2 changed files with 1 additions and 8 deletions

View file

@ -499,8 +499,6 @@ unsafe impl<T: Send> Send for Sender<T> { }
impl<T> !Sync for Sender<T> { }
/// The sending-half of Rust's synchronous [`sync_channel`] type.
/// This half can only be owned by one thread, but it can be cloned
/// to send to other threads.
///
/// Messages can be sent through this channel with [`send`] or [`try_send`].
///
@ -555,9 +553,6 @@ pub struct SyncSender<T> {
#[stable(feature = "rust1", since = "1.0.0")]
unsafe impl<T: Send> Send for SyncSender<T> {}
#[stable(feature = "rust1", since = "1.0.0")]
impl<T> !Sync for SyncSender<T> {}
/// An error returned from the [`Sender::send`] or [`SyncSender::send`]
/// function on **channel**s.
///

View file

@ -10,7 +10,7 @@
use std::cell::{Cell, RefCell};
use std::rc::{Rc, Weak};
use std::sync::mpsc::{Receiver, Sender, SyncSender};
use std::sync::mpsc::{Receiver, Sender};
fn test<T: Sync>() {}
@ -29,6 +29,4 @@ fn main() {
//~^ ERROR `std::sync::mpsc::Receiver<i32>: std::marker::Sync` is not satisfied
test::<Sender<i32>>();
//~^ ERROR `std::sync::mpsc::Sender<i32>: std::marker::Sync` is not satisfied
test::<SyncSender<i32>>();
//~^ ERROR `std::sync::mpsc::SyncSender<i32>: std::marker::Sync` is not satisfied
}