diff options
| author | Amanieu d'Antras <amanieu@gmail.com> | 2016-04-05 14:00:17 +0100 |
|---|---|---|
| committer | Amanieu d'Antras <amanieu@gmail.com> | 2016-04-05 14:00:17 +0100 |
| commit | af047d9c10be73ca9f450b2e3aa2c5c62483981c (patch) | |
| tree | 12e2d910a1ecbdb7676c73a3fedb1a4dc952bf30 /src/liballoc | |
| parent | f92ce2e9fe56942e0fd6a18d0e11bc4a9bdf8ddd (diff) | |
| download | rust-af047d9c10be73ca9f450b2e3aa2c5c62483981c.tar.gz rust-af047d9c10be73ca9f450b2e3aa2c5c62483981c.zip | |
Fix infinite loop in Arc::downgrade
Diffstat (limited to 'src/liballoc')
| -rw-r--r-- | src/liballoc/arc.rs | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/liballoc/arc.rs b/src/liballoc/arc.rs index 055029dddcd..e1f698cb484 100644 --- a/src/liballoc/arc.rs +++ b/src/liballoc/arc.rs @@ -263,6 +263,7 @@ impl<T: ?Sized> Arc<T> { loop { // check if the weak counter is currently "locked"; if so, spin. if cur == usize::MAX { + cur = this.inner().weak.load(Relaxed); continue; } |
