diff --git a/examples/EchoServer.cpp b/examples/EchoServer.cpp index c629342..bba88f8 100644 --- a/examples/EchoServer.cpp +++ b/examples/EchoServer.cpp @@ -35,7 +35,4 @@ int main() { std::cout << "Listening on port " << 9001 << std::endl; } }).run(); - - /* This is needed to properly clear everything */ - uWS::destroy(); } diff --git a/examples/HelloWorld.cpp b/examples/HelloWorld.cpp index c2e585a..271e3a6 100644 --- a/examples/HelloWorld.cpp +++ b/examples/HelloWorld.cpp @@ -11,7 +11,4 @@ int main() { }).run(); std::cout << "Failed to listen on port 3000" << std::endl; - - /* This is needed to properly clear everything */ - uWS::destroy(); } diff --git a/src/Loop.h b/src/Loop.h index ac19cdf..f1f8222 100644 --- a/src/Loop.h +++ b/src/Loop.h @@ -84,6 +84,9 @@ public: if (!defaultLoop) { ownsDefaultLoop = true; defaultLoop = create(true); + std::atexit([]() { + Loop::defaultLoop()->free(); + }); return defaultLoop; } else if (ownsDefaultLoop) { return defaultLoop; @@ -145,11 +148,6 @@ inline void run() { Loop::defaultLoop()->run(); } -/* Helper to clean up a thead before exiting */ -inline void destroy() { - Loop::defaultLoop()->free(); -} - } #endif // LOOP_H