diff options
author | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-07-20 16:34:30 +0100 |
---|---|---|
committer | Dan Goodliffe <dan@randomdan.homeip.net> | 2025-07-20 16:34:30 +0100 |
commit | 9f90735d37c0dfa0feb2a19c4528184bc7502e9f (patch) | |
tree | f5f9d2e05bc557f36ab0cbe187d494fdf272ec2d | |
parent | Remove magic number for MESSAGE_SIZE_HEADROOM (diff) | |
download | netfs-9f90735d37c0dfa0feb2a19c4528184bc7502e9f.tar.bz2 netfs-9f90735d37c0dfa0feb2a19c4528184bc7502e9f.tar.xz netfs-9f90735d37c0dfa0feb2a19c4528184bc7502e9f.zip |
Don't pointlessly collect all the background functions of batch writes
-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; }); |