aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/nfs/Cancellable.hxx (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-01-01Copyright year 2015Max Kellermann1-1/+1
2014-12-14lib/nfs/Connection: fix memory leak (and assertion failure)Max Kellermann1-0/+6
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 Kellermann1-0/+7
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 Kellermann1-35/+13
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 Kellermann1-0/+177
More robust and cancellable.