tracing
can't track the execution duration of futures passed to futures-concurrency
#137
Open
9 of 12 tasks
Labels
bug
Something isn't working
An example provided by @jstarks:
The problem is that both spans are always measured to have the same duration, because the wrapping future returned by
.instrument
keeps the span alive until the future is dropped, not until the future'spoll()
returns ready.On our end the change we can make is to more eagerly drop futures on completion, rather than only dropping them when the final future resolves. Conservatively tagging this as a bug, since the resulting behavior is not right - even if we aren't failing to uphold any of Rust's async invariants.
tasks
impl Join for Array
Drop futures as soon as they're done forarray::join
#138impl Join for Vec
Drop futures as soon as they're done forvec::join
#141impl Join for Tuple
tuple::join - drop futures in-place #143impl TryJoin for Array
Drop futures as soon as they're done for{array, vec}::try_join
#142impl TryJoin for Vec
Drop futures as soon as they're done for{array, vec}::try_join
#142impl TryJoin for Tuple
tuple::try_join
- drop futures in-place #145impl Race for Array
(N/A)impl Race for Vec
(N/A)impl Race for Tuple
(N/A)impl RaceOk for Array
impl RaceOk for Vec
impl RaceOk for Tuple
The text was updated successfully, but these errors were encountered: