aboutsummaryrefslogtreecommitdiffstats
path: root/src/lib/nfs/Cancellable.hxx (follow)
Commit message (Collapse)AuthorAgeFilesLines
* lib/nfs/Connection: fix memory leak (and assertion failure)Max Kellermann2014-12-141-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.
* lib/nfs/FileReader: postpone the nfs_close_async() callMax Kellermann2014-10-011-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().
* lib/nfs/Cancellable: use boost::intrusive::listMax Kellermann2014-10-011-35/+13
| | | | | Reduce Remove() overhead because we don't have to walk the list to find an iterator by reference.
* input/nfs: use the asynchronous libnfs APIMax Kellermann2014-06-171-0/+177
More robust and cancellable.