summary refs log tree commit diff
path: root/src/libstd
diff options
context:
space:
mode:
authorBen Blum <bblum@andrew.cmu.edu>2012-08-10 22:54:41 -0400
committerBen Blum <bblum@andrew.cmu.edu>2012-08-13 17:18:23 -0400
commit3dbce4ebea8b36c873b1b29e5a56d5a8b86feee6 (patch)
treeeeafc7015309147ad875469686dcd9deb3f2ad57 /src/libstd
parent9470e5d7d56b4e697e6ba96e8f0cc10c64f0bdf0 (diff)
downloadrust-3dbce4ebea8b36c873b1b29e5a56d5a8b86feee6.tar.gz
rust-3dbce4ebea8b36c873b1b29e5a56d5a8b86feee6.zip
minor fix to rwlock.read()
Diffstat (limited to 'src/libstd')
-rw-r--r--src/libstd/sync.rs3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/libstd/sync.rs b/src/libstd/sync.rs
index 575412825e1..3ca0d43d985 100644
--- a/src/libstd/sync.rs
+++ b/src/libstd/sync.rs
@@ -315,6 +315,7 @@ impl &rwlock {
      * tasks may run concurrently with this one.
      */
     fn read<U>(blk: fn() -> U) -> U {
+        let mut release = none;
         unsafe {
             do task::unkillable {
                 do (&self.order_lock).access {
@@ -328,9 +329,9 @@ impl &rwlock {
                         (&self.access_lock).acquire();
                     }
                 }
+                release = some(rwlock_release_read(self));
             }
         }
-        let _z = rwlock_release_read(self);
         blk()
     }