Commit 616e2284 authored by Gijs Vermeulen's avatar Gijs Vermeulen Committed by Alexandre Julliard

vcomp: Implement omp_get_num_procs().

parent b6820ad6
......@@ -43,6 +43,7 @@ static DWORD vcomp_context_tls = TLS_OUT_OF_INDEXES;
static HMODULE vcomp_module;
static int vcomp_max_threads;
static int vcomp_num_threads;
static int vcomp_num_procs;
static BOOL vcomp_nested_fork = FALSE;
static RTL_CRITICAL_SECTION vcomp_section;
......@@ -1001,8 +1002,8 @@ int CDECL omp_get_nested(void)
int CDECL omp_get_num_procs(void)
{
TRACE("stub\n");
return 1;
TRACE("\n");
return vcomp_num_procs;
}
int CDECL omp_get_num_threads(void)
......@@ -1843,6 +1844,7 @@ BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved)
vcomp_module = instance;
vcomp_max_threads = sysinfo.dwNumberOfProcessors;
vcomp_num_threads = sysinfo.dwNumberOfProcessors;
vcomp_num_procs = sysinfo.dwNumberOfProcessors;
break;
}
......
......@@ -117,6 +117,7 @@ static void (CDECL *pomp_destroy_lock)(omp_lock_t *lock);
static void (CDECL *pomp_destroy_nest_lock)(omp_nest_lock_t *lock);
static int (CDECL *pomp_get_max_threads)(void);
static int (CDECL *pomp_get_nested)(void);
static int (CDECL *pomp_get_num_procs)(void);
static int (CDECL *pomp_get_num_threads)(void);
static int (CDECL *pomp_get_thread_num)(void);
static int (CDECL *pomp_in_parallel)(void);
......@@ -352,6 +353,7 @@ static BOOL init_vcomp(void)
VCOMP_GET_PROC(omp_destroy_nest_lock);
VCOMP_GET_PROC(omp_get_max_threads);
VCOMP_GET_PROC(omp_get_nested);
VCOMP_GET_PROC(omp_get_num_procs);
VCOMP_GET_PROC(omp_get_num_threads);
VCOMP_GET_PROC(omp_get_thread_num);
VCOMP_GET_PROC(omp_in_parallel);
......@@ -2209,11 +2211,24 @@ static void test_reduction_float_double(void)
}
}
static void test_omp_get_num_procs(void)
{
SYSTEM_INFO sysinfo;
int num_procs;
num_procs = pomp_get_num_procs();
ok(num_procs > 0, "expected non-zero num_procs\n");
GetSystemInfo(&sysinfo);
ok(sysinfo.dwNumberOfProcessors > 0, "expected non-zero dwNumberOfProcessors\n");
ok(num_procs == sysinfo.dwNumberOfProcessors, "got dwNumberOfProcessors %d num_procs %d\n", sysinfo.dwNumberOfProcessors, num_procs);
}
START_TEST(vcomp)
{
if (!init_vcomp())
return;
test_omp_get_num_procs();
test_omp_get_num_threads(FALSE);
test_omp_get_num_threads(TRUE);
test_vcomp_fork();
......
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