summaryrefslogtreecommitdiffstats
path: root/vendor/futures-util/src/stream/futures_unordered/iter.rs
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/futures-util/src/stream/futures_unordered/iter.rs')
-rw-r--r--vendor/futures-util/src/stream/futures_unordered/iter.rs4
1 files changed, 4 insertions, 0 deletions
diff --git a/vendor/futures-util/src/stream/futures_unordered/iter.rs b/vendor/futures-util/src/stream/futures_unordered/iter.rs
index 04db5ee75..20248c70f 100644
--- a/vendor/futures-util/src/stream/futures_unordered/iter.rs
+++ b/vendor/futures-util/src/stream/futures_unordered/iter.rs
@@ -2,6 +2,7 @@ use super::task::Task;
use super::FuturesUnordered;
use core::marker::PhantomData;
use core::pin::Pin;
+use core::ptr;
use core::sync::atomic::Ordering::Relaxed;
/// Mutable iterator over all futures in the unordered set.
@@ -58,6 +59,9 @@ impl<Fut: Unpin> Iterator for IntoIter<Fut> {
// valid `next_all` checks can be skipped.
let next = (**task).next_all.load(Relaxed);
*task = next;
+ if !task.is_null() {
+ *(**task).prev_all.get() = ptr::null_mut();
+ }
self.len -= 1;
Some(future)
}