diff options
Diffstat (limited to '')
-rw-r--r-- | src/lib/nfs/Connection.cxx | 6 | ||||
-rw-r--r-- | src/lib/nfs/Connection.hxx | 5 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/lib/nfs/Connection.cxx b/src/lib/nfs/Connection.cxx index 56abf7129..4b6a6fc78 100644 --- a/src/lib/nfs/Connection.cxx +++ b/src/lib/nfs/Connection.cxx @@ -374,6 +374,11 @@ NfsConnection::DestroyContext() assert(GetEventLoop().IsInside()); assert(context != nullptr); +#ifndef NDEBUG + assert(!in_destroy); + in_destroy = true; +#endif + /* cancel pending DeferredMonitor that was scheduled to notify new leases */ DeferredMonitor::Cancel(); @@ -558,6 +563,7 @@ NfsConnection::MountInternal(Error &error) #ifndef NDEBUG in_service = false; in_event = false; + in_destroy = false; #endif if (nfs_mount_async(context, server.c_str(), export_name.c_str(), diff --git a/src/lib/nfs/Connection.hxx b/src/lib/nfs/Connection.hxx index e47ba404b..310ccdc44 100644 --- a/src/lib/nfs/Connection.hxx +++ b/src/lib/nfs/Connection.hxx @@ -129,6 +129,11 @@ class NfsConnection : SocketMonitor, DeferredMonitor { * event updates are omitted. */ bool in_event; + + /** + * True when DestroyContext() is being called. + */ + bool in_destroy; #endif bool mount_finished; |