diff --git a/src/event/Loop.cxx b/src/event/Loop.cxx index 3420676a1..ada820c2d 100644 --- a/src/event/Loop.cxx +++ b/src/event/Loop.cxx @@ -222,8 +222,9 @@ EventLoop::Run() #ifndef NDEBUG assert(busy); assert(thread.IsInside()); - thread = ThreadId::Null(); #endif + + thread = ThreadId::Null(); } void diff --git a/src/event/Loop.hxx b/src/event/Loop.hxx index 7c0e0b028..f1962b4df 100644 --- a/src/event/Loop.hxx +++ b/src/event/Loop.hxx @@ -212,12 +212,16 @@ public: } #endif -#ifndef NDEBUG + /** + * Like IsInside(), but also returns true if the thread has + * already ended (or was not started yet). This is useful for + * code which may run during startup or shutdown, when events + * are not yet/anymore handled. + */ gcc_pure bool IsInsideOrNull() const { return thread.IsNull() || thread.IsInside(); } -#endif }; #endif /* MAIN_NOTIFY_H */