[1/8] vcomp: Implement omp_get_max_threads and omp_set_num_threads.
Sebastian Lackner
sebastian at fds-team.de
Tue Jul 14 14:39:33 CDT 2015
---
dlls/vcomp/main.c | 27 ++++++++++++++++++++-------
1 file changed, 20 insertions(+), 7 deletions(-)
diff --git a/dlls/vcomp/main.c b/dlls/vcomp/main.c
index ab2a372..5a50486 100644
--- a/dlls/vcomp/main.c
+++ b/dlls/vcomp/main.c
@@ -29,6 +29,9 @@
WINE_DEFAULT_DEBUG_CHANNEL(vcomp);
+static int vcomp_max_threads;
+static int vcomp_num_threads;
+
int CDECL omp_get_dynamic(void)
{
TRACE("stub\n");
@@ -37,8 +40,8 @@ int CDECL omp_get_dynamic(void)
int CDECL omp_get_max_threads(void)
{
- TRACE("stub\n");
- return 1;
+ TRACE("()\n");
+ return vcomp_max_threads;
}
int CDECL omp_get_nested(void)
@@ -83,7 +86,9 @@ void CDECL omp_set_nested(int nested)
void CDECL omp_set_num_threads(int num_threads)
{
- TRACE("(%d): stub\n", num_threads);
+ TRACE("(%d)\n", num_threads);
+ if (num_threads >= 1)
+ vcomp_num_threads = num_threads;
}
void CDECL _vcomp_barrier(void)
@@ -107,17 +112,25 @@ void CDECL _vcomp_single_end(void)
TRACE("stub\n");
}
-BOOL WINAPI DllMain(HINSTANCE hinstDLL, DWORD fdwReason, LPVOID lpvReserved)
+BOOL WINAPI DllMain(HINSTANCE instance, DWORD reason, LPVOID reserved)
{
- TRACE("(0x%p, %d, %p)\n", hinstDLL, fdwReason, lpvReserved);
+ TRACE("(%p, %d, %p)\n", instance, reason, reserved);
- switch (fdwReason)
+ switch (reason)
{
case DLL_WINE_PREATTACH:
return FALSE; /* prefer native version */
+
case DLL_PROCESS_ATTACH:
- DisableThreadLibraryCalls(hinstDLL);
+ {
+ SYSTEM_INFO sysinfo;
+ DisableThreadLibraryCalls(instance);
+
+ GetSystemInfo(&sysinfo);
+ vcomp_max_threads = sysinfo.dwNumberOfProcessors;
+ vcomp_num_threads = sysinfo.dwNumberOfProcessors;
break;
+ }
}
return TRUE;
--
2.4.5
More information about the wine-patches
mailing list