about summary refs log tree commit diff
path: root/src/libstd/sync.rs
diff options
context:
space:
mode:
authorTim Chevalier <chevalier@alum.wellesley.edu>2012-12-06 19:27:44 -0800
committerTim Chevalier <chevalier@alum.wellesley.edu>2012-12-06 21:53:25 -0800
commit7a365e4aa4386ed692163517e3cf42eaed68b786 (patch)
treee7e28adf6b885ed274bfb6c187b29d66217c11a7 /src/libstd/sync.rs
parent35f36808ffd28fd1195147890f49b6284bb97130 (diff)
downloadrust-7a365e4aa4386ed692163517e3cf42eaed68b786.tar.gz
rust-7a365e4aa4386ed692163517e3cf42eaed68b786.zip
make bblum happy
Diffstat (limited to 'src/libstd/sync.rs')
-rw-r--r--src/libstd/sync.rs23
1 files changed, 6 insertions, 17 deletions
diff --git a/src/libstd/sync.rs b/src/libstd/sync.rs
index 86b9f03313f..a373a201ffe 100644
--- a/src/libstd/sync.rs
+++ b/src/libstd/sync.rs
@@ -158,36 +158,25 @@ impl &Sem<~[mut Waitqueue]> {
 
 // FIXME(#3588) should go inside of access()
 #[doc(hidden)]
-struct SemRelease {
-    sem: &Sem<()>,
-}
+type SemRelease = SemReleaseGeneric<()>;
+type SemAndSignalRelease = SemReleaseGeneric<~[mut Waitqueue]>;
+struct SemReleaseGeneric<Q: Send> { sem: &Sem<Q> }
 
-impl SemRelease : Drop {
+impl<Q: Send> SemReleaseGeneric<Q> : Drop {
     fn finalize(&self) {
         self.sem.release();
     }
 }
 
 fn SemRelease(sem: &r/Sem<()>) -> SemRelease/&r {
-    SemRelease {
+    SemReleaseGeneric {
         sem: sem
     }
 }
 
-#[doc(hidden)]
-struct SemAndSignalRelease {
-    sem: &Sem<~[mut Waitqueue]>,
-}
-
-impl SemAndSignalRelease : Drop {
-    fn finalize(&self) {
-        self.sem.release();
-    }
-}
-
 fn SemAndSignalRelease(sem: &r/Sem<~[mut Waitqueue]>)
     -> SemAndSignalRelease/&r {
-    SemAndSignalRelease {
+    SemReleaseGeneric {
         sem: sem
     }
 }