about summary refs log tree commit diff
path: root/src/libstd/arc.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libstd/arc.rs')
-rw-r--r--src/libstd/arc.rs7
1 files changed, 6 insertions, 1 deletions
diff --git a/src/libstd/arc.rs b/src/libstd/arc.rs
index ce037dfec98..d8c32a26434 100644
--- a/src/libstd/arc.rs
+++ b/src/libstd/arc.rs
@@ -223,13 +223,18 @@ fn check_poison(is_mutex: bool, failed: bool) {
 #[doc(hidden)]
 struct PoisonOnFail {
     failed: &mut bool;
-    new(failed: &mut bool) { self.failed = failed; }
     drop {
         /* assert !*self.failed; -- might be false in case of cond.wait() */
         if task::failing() { *self.failed = true; }
     }
 }
 
+fn PoisonOnFail(failed: &r/mut bool) -> PoisonOnFail/&r {
+    PoisonOnFail {
+        failed: failed
+    }
+}
+
 /****************************************************************************
  * R/W lock protected ARC
  ****************************************************************************/