lib/nfs/Connection: move code to Service()

This commit is contained in:
Max Kellermann
2014-12-14 15:45:10 +01:00
parent 32bca64920
commit 80f2ba7fca
2 changed files with 28 additions and 12 deletions

View File

@@ -404,20 +404,11 @@ NfsConnection::ScheduleSocket()
SocketMonitor::Schedule(libnfs_to_events(nfs_which_events(context)));
}
bool
NfsConnection::OnSocketReady(unsigned flags)
inline int
NfsConnection::Service(unsigned flags)
{
assert(GetEventLoop().IsInside());
assert(deferred_close.empty());
bool closed = false;
const bool was_mounted = mount_finished;
if (!mount_finished)
/* until the mount is finished, the NFS client may use
various sockets, therefore we unregister and
re-register it each time */
SocketMonitor::Steal();
assert(context != nullptr);
#ifndef NDEBUG
assert(!in_event);
@@ -435,6 +426,26 @@ NfsConnection::OnSocketReady(unsigned flags)
in_service = false;
#endif
return result;
}
bool
NfsConnection::OnSocketReady(unsigned flags)
{
assert(GetEventLoop().IsInside());
assert(deferred_close.empty());
bool closed = false;
const bool was_mounted = mount_finished;
if (!mount_finished)
/* until the mount is finished, the NFS client may use
various sockets, therefore we unregister and
re-register it each time */
SocketMonitor::Steal();
const int result = Service(flags);
while (!deferred_close.empty()) {
InternalClose(deferred_close.front());
deferred_close.pop_front();