lib/nfs/Connection: move code to method InternalClose()

This commit is contained in:
Max Kellermann 2014-12-14 15:38:09 +01:00
parent ab4bb26a0a
commit 7fa1a84ec3
2 changed files with 17 additions and 3 deletions

View File

@ -331,12 +331,22 @@ DummyCallback(int, struct nfs_context *, void *, void *)
{
}
inline void
NfsConnection::InternalClose(struct nfsfh *fh)
{
assert(GetEventLoop().IsInside());
assert(context != nullptr);
assert(fh != nullptr);
nfs_close_async(context, fh, DummyCallback, nullptr);
}
void
NfsConnection::Close(struct nfsfh *fh)
{
assert(GetEventLoop().IsInside());
nfs_close_async(context, fh, DummyCallback, nullptr);
InternalClose(fh);
ScheduleSocket();
}
@ -424,8 +434,7 @@ NfsConnection::OnSocketReady(unsigned flags)
#endif
while (!deferred_close.empty()) {
nfs_close_async(context, deferred_close.front(),
DummyCallback, nullptr);
InternalClose(deferred_close.front());
deferred_close.pop_front();
}

View File

@ -186,6 +186,11 @@ protected:
private:
void DestroyContext();
/**
* Wrapper for nfs_close_async().
*/
void InternalClose(struct nfsfh *fh);
/**
* Invoke nfs_close_async() after nfs_service() returns.
*/