about summary refs log tree commit diff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/libcore/arc.rs1
1 files changed, 1 insertions, 0 deletions
diff --git a/src/libcore/arc.rs b/src/libcore/arc.rs
index 9c46df9731b..6a27c0b7ade 100644
--- a/src/libcore/arc.rs
+++ b/src/libcore/arc.rs
@@ -112,6 +112,7 @@ impl methods<T: send> for exclusive<T> {
     unsafe fn with<U>(f: fn(sys::condition, x: &mut T) -> U) -> U {
         let ptr: ~arc_data<ex_data<T>> =
             unsafe::reinterpret_cast(self.data);
+        assert ptr.count > 0;
         let r = {
             let rec: &ex_data<T> = &(*ptr).data;
             rec.lock.lock_cond(|c| f(c, &mut rec.data))