| | |
| | | #include "bh_util.h" |
| | | #include "shm.h" |
| | | #include "topic_node.h" |
| | | #include <boost/date_time/posix_time/posix_time.hpp> |
| | | #include <boost/noncopyable.hpp> |
| | | #include <boost/test/unit_test.hpp> |
| | | #include <boost/timer/timer.hpp> |
| | |
| | | #include <thread> |
| | | #include <vector> |
| | | |
| | | using namespace boost::posix_time; |
| | | using namespace std::chrono_literals; |
| | | using namespace std::chrono; |
| | | |
| | | template <class D> |
| | | inline void Sleep(D d, bool print = true) |
| | |
| | | public: |
| | | ~ThreadManager() { WaitAll(); } |
| | | template <class T, class... P> |
| | | void Launch(T t, P... p) { threads_.emplace_back(t, p...); } |
| | | void Launch(T &&t, P &&...p) { threads_.emplace_back(std::forward<decltype(t)>(t), std::forward<decltype(p)>(p)...); } |
| | | void WaitAll() |
| | | { |
| | | for (auto &t : threads_) { |