}
-// Used to serialize access to std::cout to avoid multiple threads writing at
-// the same time.
+// Used to serialize access to std::cout
+// to avoid multiple threads writing at the same time.
std::ostream& operator<<(std::ostream& os, SyncCout sc) {
static std::mutex m;
constexpr size_t alignment = 4096; // assumed small page size
#endif
- // round up to multiples of alignment
+ // Round up to multiples of alignment
size_t size = ((allocSize + alignment - 1) / alignment) * alignment;
void* mem = std_aligned_alloc(alignment, size);
#if defined(MADV_HUGEPAGE)
#else
-// Retrieves logical processor information using Windows specific
+// Retrieves logical processor information using Windows-specific
// API and returns the best node id for the thread with index idx. Original
// code from Texel by Peter Ă–sterlund.
static int best_node(size_t idx) {
groups.push_back(n);
// In case a core has more than one logical processor (we assume 2) and we
- // have still threads to allocate, then spread them evenly across available
- // nodes.
+ // still have threads to allocate, spread them evenly across available nodes.
for (int t = 0; t < threads - cores; t++)
groups.push_back(t % nodes);
void init([[maybe_unused]] int argc, char* argv[]) {
std::string pathSeparator;
- // extract the path+name of the executable binary
+ // Extract the path+name of the executable binary
argv0 = argv[0];
#ifdef _WIN32
pathSeparator = "/";
#endif
- // extract the working directory
+ // Extract the working directory
workingDirectory = "";
char buff[40000];
char* cwd = GETCWD(buff, 40000);
if (cwd)
workingDirectory = cwd;
- // extract the binary directory path from argv0
+ // Extract the binary directory path from argv0
binaryDirectory = argv0;
size_t pos = binaryDirectory.find_last_of("\\/");
if (pos == std::string::npos)
else
binaryDirectory.resize(pos + 1);
- // pattern replacement: "./" at the start of path is replaced by the working directory
+ // Pattern replacement: "./" at the start of path is replaced by the working directory
if (binaryDirectory.find("." + pathSeparator) == 0)
binaryDirectory.replace(0, 1, workingDirectory);
}