1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-14 08:48:01 +00:00

Properly detect number of cores on WIN32

This commit is contained in:
Znort 987 2011-08-15 11:55:12 +02:00
parent 7158f9f9ed
commit 29f0f9bc18

32
main.c
View File

@ -4165,12 +4165,34 @@ int main (int argc, char *argv[])
if (unlikely(!current_hash))
quit (1, "main OOM");
#ifdef WIN32
opt_n_threads = num_processors = 1;
#else
num_processors = sysconf(_SC_NPROCESSORS_ONLN);
// Reckon number of cores in the box
#if defined(WIN32)
DWORD system_am;
DWORD process_am;
BOOL ok = GetProcessAffinityMask(
GetCurrentProcess(),
&system_am,
&process_am
);
if (!ok) {
applog(LOG_ERR, "couldn't figure out number of processors :(");
num_processors = 1;
} else {
size_t n = 32;
num_processors = 0;
while (n--)
if (process_am & (1<<n))
++num_processors;
}
#else
num_processors = sysconf(_SC_NPROCESSORS_ONLN);
#endif /* !WIN32 */
opt_n_threads = num_processors;
#endif /* !WIN32 */
#ifdef HAVE_OPENCL
for (i = 0; i < 16; i++)