Future interruption (raise, cancel) doesn't propagate through `collect`
Đang mở
- Ngôn ngữ chính
- C++
- Star
- 30.5k
- Fork
- 5.9k
- Chỉ số merge pull request
- Không có pull request nào được merge trong 30 ngày
Mô tả
One would expect that interrupting the future resulting from `collect` would interrupt all the source futures, but this doesn't happen.
This prints 0, not 2:
```
int n = 0;
auto [p1, f1] = folly::makePromiseContract();
p1.setInterruptHandler([&](const folly::exception_wrapper& ew) { ++n; });
auto [p2, f2] = folly::makePromiseContract();
p2.setInterruptHandler([&](const folly::exception_wrapper& ew) { ++n; });
auto f = folly::collect(std::move(f1), std::move(f2));
f.cancel();
printf("%d\n", n);
```
Is there a better way to accomplish this?
Hướng dẫn đóng góp
Đánh giá
Issue này chưa được đánh giá.