File tree Expand file tree Collapse file tree 2 files changed +12
-1
lines changed
Expand file tree Collapse file tree 2 files changed +12
-1
lines changed Original file line number Diff line number Diff line change @@ -445,7 +445,7 @@ class CoalescedLoad {
445445 return state_;
446446 }
447447
448- void cancel () {
448+ virtual void cancel () {
449449 setEndState (State::kCancelled );
450450 }
451451
Original file line number Diff line number Diff line change @@ -102,6 +102,17 @@ class DirectCoalescedLoad : public cache::CoalescedLoad {
102102 return size;
103103 }
104104
105+ void cancel () override {
106+ folly::SemiFuture<bool > waitFuture (false );
107+ if (state () == State::kLoading && !loadOrFuture (&waitFuture)) {
108+ waitFuture.wait ();
109+ }
110+ for (auto & request : requests_) {
111+ pool_->freeNonContiguous (request.data );
112+ }
113+ CoalescedLoad::cancel ();
114+ }
115+
105116 private:
106117 const std::shared_ptr<IoStatistics> ioStats_;
107118 const std::shared_ptr<filesystems::File::IoStats> fsStats_;
You can’t perform that action at this time.
0 commit comments