lib/nfs/Connection: move code to Service()
This commit is contained in:
parent
32bca64920
commit
80f2ba7fca
@ -404,20 +404,11 @@ NfsConnection::ScheduleSocket()
|
|||||||
SocketMonitor::Schedule(libnfs_to_events(nfs_which_events(context)));
|
SocketMonitor::Schedule(libnfs_to_events(nfs_which_events(context)));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool
|
inline int
|
||||||
NfsConnection::OnSocketReady(unsigned flags)
|
NfsConnection::Service(unsigned flags)
|
||||||
{
|
{
|
||||||
assert(GetEventLoop().IsInside());
|
assert(GetEventLoop().IsInside());
|
||||||
assert(deferred_close.empty());
|
assert(context != nullptr);
|
||||||
|
|
||||||
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();
|
|
||||||
|
|
||||||
#ifndef NDEBUG
|
#ifndef NDEBUG
|
||||||
assert(!in_event);
|
assert(!in_event);
|
||||||
@ -435,6 +426,26 @@ NfsConnection::OnSocketReady(unsigned flags)
|
|||||||
in_service = false;
|
in_service = false;
|
||||||
#endif
|
#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()) {
|
while (!deferred_close.empty()) {
|
||||||
InternalClose(deferred_close.front());
|
InternalClose(deferred_close.front());
|
||||||
deferred_close.pop_front();
|
deferred_close.pop_front();
|
||||||
|
@ -207,6 +207,11 @@ private:
|
|||||||
|
|
||||||
void ScheduleSocket();
|
void ScheduleSocket();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Wrapper for nfs_service().
|
||||||
|
*/
|
||||||
|
int Service(unsigned flags);
|
||||||
|
|
||||||
/* virtual methods from SocketMonitor */
|
/* virtual methods from SocketMonitor */
|
||||||
virtual bool OnSocketReady(unsigned flags) override;
|
virtual bool OnSocketReady(unsigned flags) override;
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user