|
|
@@ -1,5 +1,3 @@
|
|
|
-
|
|
|
-
|
|
|
#include <iostream>
|
|
|
#include <fstream>
|
|
|
#include <sstream>
|
|
|
@@ -22,6 +20,7 @@
|
|
|
#include <sys/types.h>
|
|
|
|
|
|
#ifdef _WIN32
|
|
|
+ #define NOMINMAX
|
|
|
#include <windows.h>
|
|
|
#include <direct.h> // For _mkdir on Windows
|
|
|
#else
|
|
|
@@ -306,7 +305,7 @@ using compile_count_guard = std::unique_ptr<uint32_t, decltype(&decrement_compil
|
|
|
compile_count_guard acquire_compile_slot() {
|
|
|
// wait until fewer than N compiles are in progress.
|
|
|
// 16 is an arbitrary limit, the goal is to avoid "failed to create pipe" errors.
|
|
|
- uint32_t N = 16;
|
|
|
+ uint32_t N = std::max(1u, std::min(16u, std::thread::hardware_concurrency()));
|
|
|
std::unique_lock<std::mutex> guard(compile_count_mutex);
|
|
|
compile_count_cond.wait(guard, [N] { return compile_count < N; });
|
|
|
compile_count++;
|