summaryrefslogtreecommitdiff
path: root/src/lib/nfs/Cancellable.hxx
AgeCommit message (Collapse)Author
2021-01-01copyright year 2021Max Kellermann
2020-04-08[cppcheck] convert several functions to use std::all_ofRosen Penev
std::all_of becomes constexpr in C++20. I'm not sure it results in better performance. Found with useStlAlgorithm Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-03-12replace assert.h with cassertRosen Penev
The former was deprecated with C++14. According to the C++11 and C++17 standards, both files are identical. Signed-off-by: Rosen Penev <rosenp@gmail.com>
2020-01-18copyright year 2020Max Kellermann
2020-01-12util/{Const,Writable}Buffer: drop more "_type" suffixes from type namesMax Kellermann
2020-01-03util/{Const,Writable}Buffer: drop "_type" from type namesMax Kellermann
Behave like STL.
2019-06-17Copyright year 2019Max Kellermann
2018-10-31*: copyright year 2018Max Kellermann
2018-08-20Compiler.h: move to util/Max Kellermann
2017-05-08*: add "noexcept" to many, many function prototypesMax Kellermann
This eliminates some overhead, because the compiler doesn't need to consider these functions throwing.
2017-01-03update copyright yearMax Kellermann
2016-02-26update copyright year to 2016Max Kellermann
2015-01-01Copyright year 2015Max Kellermann
2014-12-14lib/nfs/Connection: fix memory leak (and assertion failure)Max Kellermann
nfs_destroy_context() will invoke all pending callbacks with err==-EINTR. In CancellableCallback::Callback(), this will invoke NfsConnection::DeferClose(), which however is only designed to be called from nfs_service(). In non-debug mode, this will leak memory because nfs_close_async() is never called. Workaround: before nfs_destroy_context(), invoke nfs_close_async() on all pending file handles.
2014-10-01lib/nfs/FileReader: postpone the nfs_close_async() callMax Kellermann
If an async opertion is in progress, nfs_close_async() will make libnfs crash because the RPC callback will dereference an object that was freed by nfs_close_async().
2014-10-01lib/nfs/Cancellable: use boost::intrusive::listMax Kellermann
Reduce Remove() overhead because we don't have to walk the list to find an iterator by reference.
2014-06-17input/nfs: use the asynchronous libnfs APIMax Kellermann
More robust and cancellable.