diff --git a/emper/io/IoContext.cpp b/emper/io/IoContext.cpp index 83ab7001cea8358dbd3afc683c35fc6b1b81a2c0..550c55b4da24a863be5b31c938dfbef678a020a4 100644 --- a/emper/io/IoContext.cpp +++ b/emper/io/IoContext.cpp @@ -12,6 +12,7 @@ #include <cassert> // for assert #include <cerrno> // for errno, ECANCELED, EBUSY, EAGAIN, EINTR #include <cstring> // for memset +#include <memory> #include <ostream> // for basic_osteram::operator<<, operator<< #include <string> #include <utility> diff --git a/emper/sleep_strategy/PipeSleepStrategy.hpp b/emper/sleep_strategy/PipeSleepStrategy.hpp index 5c60b74781a40d98da9773f71970528729528088..5dc4030411cabf3c2ad08f4e0bdaff3d49c6f100 100644 --- a/emper/sleep_strategy/PipeSleepStrategy.hpp +++ b/emper/sleep_strategy/PipeSleepStrategy.hpp @@ -9,6 +9,7 @@ #include <cstddef> #include <cstdint> #include <iostream> +#include <memory> #include <stdexcept> #include <type_traits> #include <vector> @@ -131,7 +132,7 @@ class PipeSleepStrategy : AbstractWorkerSleepStrategy<PipeSleepStrategy>, std::atomic<size_t> wakeupDueToNotify = 0; }; - Stats* stats; + std::unique_ptr<Stats> stats; workerid_t workerCount; int sleepFd; @@ -253,12 +254,10 @@ class PipeSleepStrategy : AbstractWorkerSleepStrategy<PipeSleepStrategy>, notifyFd = fds[1]; if constexpr (emper::STATS) { - stats = new Stats(); + stats = std::make_unique<Stats>(); } } - ~PipeSleepStrategy() { delete stats; } - void printStats() { std::cout << *stats; } [[nodiscard]] inline auto getSleeping() const -> long { return sleepers.load(); }