diff --git a/include/diy/master.hpp b/include/diy/master.hpp index ac056fb0875e91f8a85ce6efdd1276d0baf74d4f..cb47ad2c7025332c902831bd20518d1268d1cd15 100644 --- a/include/diy/master.hpp +++ b/include/diy/master.hpp @@ -671,9 +671,9 @@ iexchange_(const ICallback<Block>& f) IExchangeInfoCollective iexchange(comm_, prof); iexchange.add_work(size()); // start with one work unit for each block - std::thread comm_thread; + thread comm_thread; if (threads() > 1) - comm_thread = std::thread([this,&iexchange]() + comm_thread = thread([this,&iexchange]() { while(!iexchange.all_done()) { diff --git a/include/diy/no-thread.hpp b/include/diy/no-thread.hpp index ee8c59febc7aff6218eb0ff67667985c4ae9aab5..12533c0f610d08a9a853d937a722a09834af501b 100644 --- a/include/diy/no-thread.hpp +++ b/include/diy/no-thread.hpp @@ -18,6 +18,8 @@ namespace diy template<class Function, class... Args> explicit thread(Function&& f, Args&&... args) { f(args...); } // not ideal, since it doesn't support member functions + thread& operator=(thread&&) = default; + void join() {} static unsigned hardware_concurrency() { return 1; }