about summary refs log tree commit diff
path: root/src/libsync/lock.rs
diff options
context:
space:
mode:
authorJim Radford <radford@blackbean.org>2014-04-07 17:55:14 -0700
committerAlex Crichton <alex@alexcrichton.com>2014-04-08 00:03:11 -0700
commitdc49018679e75e8641c8a8bb295075ec5f247d99 (patch)
tree8d403adf18e9d8247bca3e082a46d695cf3ed640 /src/libsync/lock.rs
parent9a33330caaaedb9eef447ae862e9b87e3aa9880f (diff)
downloadrust-dc49018679e75e8641c8a8bb295075ec5f247d99.tar.gz
rust-dc49018679e75e8641c8a8bb295075ec5f247d99.zip
sync: remove unsafe and add Send+Share to Deref (enabled by autoderef vtables)
Diffstat (limited to 'src/libsync/lock.rs')
-rw-r--r--src/libsync/lock.rs12
1 files changed, 5 insertions, 7 deletions
diff --git a/src/libsync/lock.rs b/src/libsync/lock.rs
index 67b725f040b..b83bdf9df29 100644
--- a/src/libsync/lock.rs
+++ b/src/libsync/lock.rs
@@ -231,11 +231,10 @@ impl<T: Send> Mutex<T> {
     }
 }
 
-// FIXME(#13042): these should both have T: Send
-impl<'a, T> Deref<T> for MutexGuard<'a, T> {
+impl<'a, T: Send> Deref<T> for MutexGuard<'a, T> {
     fn deref<'a>(&'a self) -> &'a T { &*self.data }
 }
-impl<'a, T> DerefMut<T> for MutexGuard<'a, T> {
+impl<'a, T: Send> DerefMut<T> for MutexGuard<'a, T> {
     fn deref_mut<'a>(&'a mut self) -> &'a mut T { &mut *self.data }
 }
 
@@ -363,14 +362,13 @@ impl<'a, T: Send + Share> RWLockWriteGuard<'a, T> {
     }
 }
 
-// FIXME(#13042): these should all have T: Send + Share
-impl<'a, T> Deref<T> for RWLockReadGuard<'a, T> {
+impl<'a, T: Send + Share> Deref<T> for RWLockReadGuard<'a, T> {
     fn deref<'a>(&'a self) -> &'a T { self.data }
 }
-impl<'a, T> Deref<T> for RWLockWriteGuard<'a, T> {
+impl<'a, T: Send + Share> Deref<T> for RWLockWriteGuard<'a, T> {
     fn deref<'a>(&'a self) -> &'a T { &*self.data }
 }
-impl<'a, T> DerefMut<T> for RWLockWriteGuard<'a, T> {
+impl<'a, T: Send + Share> DerefMut<T> for RWLockWriteGuard<'a, T> {
     fn deref_mut<'a>(&'a mut self) -> &'a mut T { &mut *self.data }
 }