diff options
Diffstat (limited to 'src/libstd/arc.rs')
| -rw-r--r-- | src/libstd/arc.rs | 7 |
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 ****************************************************************************/ |
