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();

View File

@ -207,6 +207,11 @@ private:
void ScheduleSocket();
/**
* Wrapper for nfs_service().
*/
int Service(unsigned flags);
/* virtual methods from SocketMonitor */
virtual bool OnSocketReady(unsigned flags) override;