Remove incorrect FusedFuture impl on Delay (#1652)

`is_terminated` must return `true` until the future has been polled at least once to make sure that the associated block in select is called even after the delay has elapsed.

You use `Delay` in a `select!` by [fusing it](https://docs.rs/futures-preview/0.3.0-alpha.19/futures/future/trait.FutureExt.html#method.fuse):

```rust
let delay = tokio::timer::delay(/* ... */);
let delay = delay.fuse();

select! {
    _ = delay => {
        /* work here */
    }
}
```
This commit is contained in:
John-John Tedro
2019-10-11 15:45:44 -04:00
committed by Lucio Franco
parent 741bef8fe1
commit 29f35df7f8
-7
View File
@@ -91,13 +91,6 @@ impl Delay {
}
}
#[cfg(feature = "async-traits")]
impl futures_core::FusedFuture for Delay {
fn is_terminated(&self) -> bool {
self.is_elapsed()
}
}
impl Future for Delay {
type Output = ();