Commit acc6c2e
ARROW-15968: [C++] Update AsyncGenerator semantics to emit a terminal item only after all outstanding futures have completed
Unfortunately, this seems to have made the merge generator, which was already quite complicated, even more complicated. I'd welcome any suggestions for simplification. In the meantime, even though this one generator is more complicated, I think this allows us to simplify code using async generators considerably.
This is a prerequisite for apache#12468 because there is no way to keep the serial generator alive after the async generator has been destroyed (we can't use shared_ptr in this case)
Closes apache#12662 from westonpace/feature/ARROW-15968--only-emit-terminal-items-when-outstanding-tasks-finished
Authored-by: Weston Pace <weston.pace@gmail.com>
Signed-off-by: David Li <li.davidm96@gmail.com>1 parent d6a89e5 commit acc6c2e
3 files changed
Lines changed: 507 additions & 54 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
959 | 959 | | |
960 | 960 | | |
961 | 961 | | |
| 962 | + | |
962 | 963 | | |
963 | 964 | | |
| 965 | + | |
964 | 966 | | |
965 | 967 | | |
966 | 968 | | |
| |||
0 commit comments