diff --git a/cad/PrusaSlicer/files/patch-src_libslic3r_Thread.cpp b/cad/PrusaSlicer/files/patch-src_libslic3r_Thread.cpp new file mode 100644 index 000000000000..32ff24bbfd77 --- /dev/null +++ b/cad/PrusaSlicer/files/patch-src_libslic3r_Thread.cpp @@ -0,0 +1,41 @@ +--- src/libslic3r/Thread.cpp.orig 2021-07-16 10:14:03 UTC ++++ src/libslic3r/Thread.cpp +@@ -9,10 +9,10 @@ + #include + #include + #include ++#include ++#include + #include +-#include + #include +-#include + + #include "Thread.hpp" + +@@ -206,13 +206,13 @@ void name_tbb_thread_pool_threads() + nthreads = 1; + #endif + +- if (nthreads != nthreads_hw) +- new tbb::task_scheduler_init(int(nthreads)); ++ if (nthreads != nthreads_hw) ++ tbb::global_control(tbb::global_control::max_allowed_parallelism, nthreads); + + std::atomic nthreads_running(0); + std::condition_variable cv; + std::mutex cv_m; +- auto master_thread_id = tbb::this_tbb_thread::get_id(); ++ auto master_thread_id = std::this_thread::get_id(); + tbb::parallel_for( + tbb::blocked_range(0, nthreads, 1), + [&nthreads_running, nthreads, &master_thread_id, &cv, &cv_m](const tbb::blocked_range &range) { +@@ -226,7 +226,7 @@ void name_tbb_thread_pool_threads() + std::unique_lock lk(cv_m); + cv.wait(lk, [&nthreads_running, nthreads]{return nthreads_running == nthreads;}); + } +- auto thread_id = tbb::this_tbb_thread::get_id(); ++ auto thread_id = std::this_thread::get_id(); + if (thread_id == master_thread_id) { + // The calling thread runs the 0'th task. + assert(range.begin() == 0);