diff options
-rw-r--r-- | netfs/fuse/fuseFiles.cpp | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/netfs/fuse/fuseFiles.cpp b/netfs/fuse/fuseFiles.cpp index 61f965a..c5f2314 100644 --- a/netfs/fuse/fuseFiles.cpp +++ b/netfs/fuse/fuseFiles.cpp @@ -189,7 +189,6 @@ namespace NetFS { { try { using BackgroundOps = std::vector<std::unique_ptr<std::promise<int>>>; - using BackgroundFuncs = std::vector<std::function<void()>>; auto cpy = [buf](off_t blockOffset, const auto && data) -> int { std::copy(data.begin(), data.end(), buf + blockOffset); return safe {data.size()}; @@ -203,13 +202,11 @@ namespace NetFS { auto remote = openFile->remote; auto blockSizes = openFile->blockSizes(size); if (fcr->Async) { - BackgroundFuncs fs; BackgroundOps ops; blockSizeIterate(blockSizes, - [&ops, &fs, &offset, &openFile, &remote, blockOffset = 0U, &cpy]( - safe<size_t> blockSize) mutable { + [&ops, &offset, &openFile, &remote, blockOffset = 0U, &cpy](safe<size_t> blockSize) mutable { const auto p = appendNewDefault(ops); - fs.push_back(waitOnWriteRangeAndThen(blockSize, offset, openFile, + waitOnWriteRangeAndThen(blockSize, offset, openFile, [p, offset, blockOffset, blockSize, &remote, &cpy](const auto &) { return remote->readAsync( offset, blockSize, @@ -220,26 +217,25 @@ namespace NetFS { [p](auto error) { p->set_exception(std::move(error)); }); - })); + }); offset += blockSize; blockOffset += blockSize; }); return collateTotal(ops); } if (openFile->bodyMaxSize < size) { - BackgroundFuncs fs; BackgroundOps ops; - blockSizeIterate(blockSizes, - [&offset, &remote, blockOffset = 0U, &ops, &fs, &cpy](safe<size_t> blockSize) mutable { + blockSizeIterate( + blockSizes, [&offset, &remote, blockOffset = 0U, &ops, &cpy](safe<size_t> blockSize) mutable { const auto p = appendNewDefault(ops); - fs.push_back(remote->readAsync( + remote->readAsync( offset, blockSize, [cpy, p, blockOffset](auto && resultBuf) { p->set_value(cpy(blockOffset, std::forward<Ice::ByteSeq>(resultBuf))); }, [p](auto error) { p->set_exception(std::move(error)); - })); + }); offset += blockSize; blockOffset += blockSize; }); |