Detlef Riekenberg : kernel: Load QueueUserWorkItem function
dynamically.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu Mar 23 13:50:10 CST 2006
Module: wine
Branch: refs/heads/master
Commit: 213cee62b598331143eb2c7f134bba9a30d7a552
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=213cee62b598331143eb2c7f134bba9a30d7a552
Author: Detlef Riekenberg <wine.dev at web.de>
Date: Wed Mar 22 23:34:52 2006 +0100
kernel: Load QueueUserWorkItem function dynamically.
---
dlls/kernel/tests/thread.c | 9 ++++++++-
1 files changed, 8 insertions(+), 1 deletions(-)
diff --git a/dlls/kernel/tests/thread.c b/dlls/kernel/tests/thread.c
index 9788447..3a68175 100644
--- a/dlls/kernel/tests/thread.c
+++ b/dlls/kernel/tests/thread.c
@@ -58,6 +58,9 @@ static GetThreadPriorityBoost_t pGetThre
typedef HANDLE (WINAPI *OpenThread_t)(DWORD,BOOL,DWORD);
static OpenThread_t pOpenThread=NULL;
+typedef BOOL (WINAPI *QueueUserWorkItem_t)(LPTHREAD_START_ROUTINE,PVOID,ULONG);
+static QueueUserWorkItem_t pQueueUserWorkItem=NULL;
+
typedef DWORD (WINAPI *SetThreadIdealProcessor_t)(HANDLE,DWORD);
static SetThreadIdealProcessor_t pSetThreadIdealProcessor=NULL;
@@ -695,13 +698,16 @@ static void test_QueueUserWorkItem(void)
DWORD wait_result;
DWORD before, after;
+ /* QueueUserWorkItem not present on win9x */
+ if (!pQueueUserWorkItem) return;
+
finish_event = CreateEvent(NULL, TRUE, FALSE, NULL);
before = GetTickCount();
for (i = 0; i < 100; i++)
{
- BOOL ret = QueueUserWorkItem(work_function, (void *)i, WT_EXECUTEDEFAULT);
+ BOOL ret = pQueueUserWorkItem(work_function, (void *)i, WT_EXECUTEDEFAULT);
ok(ret, "QueueUserWorkItem failed with error %ld\n", GetLastError());
}
@@ -724,6 +730,7 @@ START_TEST(thread)
ok(lib!=NULL,"Couldn't get a handle for kernel32.dll\n");
pGetThreadPriorityBoost=(GetThreadPriorityBoost_t)GetProcAddress(lib,"GetThreadPriorityBoost");
pOpenThread=(OpenThread_t)GetProcAddress(lib,"OpenThread");
+ pQueueUserWorkItem=(QueueUserWorkItem_t)GetProcAddress(lib,"QueueUserWorkItem");
pSetThreadIdealProcessor=(SetThreadIdealProcessor_t)GetProcAddress(lib,"SetThreadIdealProcessor");
pSetThreadPriorityBoost=(SetThreadPriorityBoost_t)GetProcAddress(lib,"SetThreadPriorityBoost");
test_CreateThread_basic();
More information about the wine-cvs
mailing list