Commit Graph

3 Commits

Author SHA1 Message Date
Craig Tiller 8448d499e2 [promises] Add `AllOk` combinator (#35304)
`AllOk` runs a set of promises concurrently, and like `TryJoin` waits for them all to succeed or one to fail.
Unlike `TryJoin` it returns a single unified status of the composition, so cannot handle member promises that might return `StatusOr` or the like.

Closes #35304

COPYBARA_INTEGRATE_REVIEW=https://github.com/grpc/grpc/pull/35304 from ctiller:all-review 30f5f809c6
PiperOrigin-RevId: 591031189
2023-12-14 13:21:35 -08:00
Craig Tiller 52369882d8
[promises] Add tracing to seq, join variants (#34401)
Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-09-19 11:49:12 -07:00
Craig Tiller 8bbd11ebed
[promises] New `Join`, `TryJoin` implementation (#33995)
Our current implementation of Join, TryJoin leverage some complicated
template stuff to work, which makes them hard to maintain. I've been
thinking about ways to simplify that for some time and had something
like this in mind - using a code generator that's at least a little more
understandable to code generate most of the complexity into a file that
is checkable.

Concurrently - I have a cool optimization in mind - but it requires that
we can move promises after polling, which is a contract change. I'm
going to work through the set of primitives we have in the coming weeks
and change that contract to enable the optimization.

---------

Co-authored-by: ctiller <ctiller@users.noreply.github.com>
2023-08-15 21:44:13 -07:00