Commit 14b3c0f0 authored by Max Kellermann's avatar Max Kellermann

event/Loop: destruct the Uring::Manager in the destructor before assert()

Fixes assertion failure when the EventLoop gets destructed before Run() was ever called. Fixes https://bugs.debian.org/998310
parent 67aff050
ver 0.23.4 (not yet released) ver 0.23.4 (not yet released)
* fix crash or debug builds if startup fails
ver 0.23.3 (2021/10/31) ver 0.23.3 (2021/10/31)
* protocol * protocol
......
...@@ -52,6 +52,13 @@ EventLoop::EventLoop( ...@@ -52,6 +52,13 @@ EventLoop::EventLoop(
EventLoop::~EventLoop() noexcept EventLoop::~EventLoop() noexcept
{ {
#if defined(HAVE_URING) && !defined(NDEBUG)
/* if Run() was never called (maybe because startup failed and
an exception is pending), we need to destruct the
Uring::Manager here or else the assertions below fail */
uring.reset();
#endif
assert(defer.empty()); assert(defer.empty());
assert(idle.empty()); assert(idle.empty());
#ifdef HAVE_THREADED_EVENT_LOOP #ifdef HAVE_THREADED_EVENT_LOOP
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment