v7.3.0
This release makes progress towards resolving #137 for the join
and try_join
operations. Rather than dropping futures when the enclosing future is dropped, futures are instead now dropped as soon as they're done yielding data. This has the immediate benefit that tracing the execution duration of the contained futures will generally more accurate. But in the longer term this also sets us up to support concurrent asynchronous destructor behavior, where async destructors can begin executing as soon as individual futures are ready, rather then once the future is dropped.
This change is considered semver minor since we've intentionally never guaranteed drop ordering of futures, knowing we wanted to enable concurrent execution of asynchronous destructors once those become available in the language.
What's Changed
- Drop futures as soon as they're done for
array::join
by @yoshuawuyts in #138 - Output structure by @yoshuawuyts in #139
- Move indexing logic to the state structures by @yoshuawuyts in #140
- Drop futures as soon as they're done for
vec::join
by @yoshuawuyts in #141 - Drop futures as soon as they're done for
{array, vec}::try_join
by @yoshuawuyts in #142 - Drop futures as soon as they're done for
tuple::join
by @yoshuawuyts in #143 - Remove macro warnings by @yoshuawuyts in #144
- Drop futures as soon as they're done for
tuple::try_join
by @yoshuawuyts in #145
Full Changelog: v7.2.1...v7.3.0