diff --git a/include/ftl/handle.hpp b/include/ftl/handle.hpp index 0744c914b6d15092585cdb5fdda1ef0f37bc44d7..57aeb16c5fc527b1781e3854a1c5ae51cbc6317e 100644 --- a/include/ftl/handle.hpp +++ b/include/ftl/handle.hpp @@ -16,6 +16,8 @@ namespace ftl { struct Handle; struct BaseHandler { + virtual ~BaseHandler() {} + virtual void remove(const Handle &) = 0; virtual void removeUnsafe(const Handle &) = 0; @@ -97,7 +99,7 @@ struct [[nodiscard]] Handle { template <typename ...ARGS> struct Handler : BaseHandler { Handler() {} - ~Handler() { + virtual ~Handler() { // Ensure all thread pool jobs are done while (jobs_ > 0 && ftl::pool.size() > 0) std::this_thread::sleep_for(std::chrono::milliseconds(2)); }