Commit 8d98e3eb authored by Martin Reinecke's avatar Martin Reinecke
Browse files

Merge branch 'ducc0' into new_data_structure

parents 82f69370 82659582
Pipeline #81518 passed with stages
in 12 minutes and 51 seconds
...@@ -29,6 +29,7 @@ ...@@ -29,6 +29,7 @@
#include <queue> #include <queue>
#include <atomic> #include <atomic>
#include <vector> #include <vector>
#include <exception>
#if __has_include(<pthread.h>) #if __has_include(<pthread.h>)
#include <pthread.h> #include <pthread.h>
#endif #endif
...@@ -110,11 +111,12 @@ template <typename T> class concurrent_queue ...@@ -110,11 +111,12 @@ template <typename T> class concurrent_queue
class thread_pool class thread_pool
{ {
private: private:
#if __cpp_lib_hardware_interference_size >= 201603 //FIXME: temporary ... OSX seems to set the macro, but not to have the variable
struct alignas(std::hardware_destructive_interference_size) worker //#if __cpp_lib_hardware_interference_size >= 201603
#else // struct alignas(std::hardware_destructive_interference_size) worker
//#else
struct alignas(64) worker struct alignas(64) worker
#endif //#endif
{ {
std::thread thread; std::thread thread;
std::condition_variable work_ready; std::condition_variable work_ready;
...@@ -400,7 +402,7 @@ void Distribution::thread_map(std::function<void(Scheduler &)> f) ...@@ -400,7 +402,7 @@ void Distribution::thread_map(std::function<void(Scheduler &)> f)
} }
counter.wait(); counter.wait();
if (ex) if (ex)
rethrow_exception(ex); std::rethrow_exception(ex);
} }
void execSingle(size_t nwork, std::function<void(Scheduler &)> func) void execSingle(size_t nwork, std::function<void(Scheduler &)> func)
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment