From 241b66d3bde08cae459c27250dafae1f2aa8c8a7 Mon Sep 17 00:00:00 2001 From: Thomas Bluemel Date: Thu, 11 Mar 2004 14:44:48 +0000 Subject: [PATCH] added buttons to test if a thread is hung svn path=/trunk/; revision=8642 --- reactos/apps/tests/multithrdwin/makefile | 4 +- .../apps/tests/multithrdwin/multithrdwin.c | 42 +++++++++++++++++-- 2 files changed, 41 insertions(+), 5 deletions(-) diff --git a/reactos/apps/tests/multithrdwin/makefile b/reactos/apps/tests/multithrdwin/makefile index 003fb12c9ed..2b30a8f4428 100644 --- a/reactos/apps/tests/multithrdwin/makefile +++ b/reactos/apps/tests/multithrdwin/makefile @@ -1,4 +1,4 @@ -# $Id: makefile,v 1.1 2003/12/14 16:11:40 weiden Exp $ +# $Id: makefile,v 1.2 2004/03/11 14:44:48 weiden Exp $ PATH_TO_TOP = ../../.. @@ -10,7 +10,7 @@ TARGET_APPTYPE = windows TARGET_NAME = multithrdwin -TARGET_SDKLIBS = kernel32.a gdi32.a +TARGET_SDKLIBS = kernel32.a gdi32.a ntdll.a TARGET_OBJECTS = $(TARGET_NAME).o diff --git a/reactos/apps/tests/multithrdwin/multithrdwin.c b/reactos/apps/tests/multithrdwin/multithrdwin.c index 0a6e005b36e..fa7e8385bbd 100644 --- a/reactos/apps/tests/multithrdwin/multithrdwin.c +++ b/reactos/apps/tests/multithrdwin/multithrdwin.c @@ -15,6 +15,7 @@ typedef struct _THRDCREATEWIN static HINSTANCE hAppInstance; static HANDLE WinCreatedEvent; +static THRDCREATEWIN wnds[3]; LRESULT WINAPI MultiWndProc(HWND, UINT, WPARAM, LPARAM); @@ -47,7 +48,10 @@ WindowThreadProc(LPVOID lpParameter) GetLastError()); return 1; } - + CreateWindow("BUTTON","Sleep",WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_GROUP|BS_PUSHBUTTON, 10, 10, 70, 23, cw->Window, (PVOID)1, hAppInstance, NULL); + CreateWindow("BUTTON","1",WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_GROUP|BS_PUSHBUTTON, 83, 10, 20, 23, cw->Window, (PVOID)2, hAppInstance, NULL); + CreateWindow("BUTTON","2",WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_GROUP|BS_PUSHBUTTON, 105, 10, 20, 23, cw->Window, (PVOID)3, hAppInstance, NULL); + CreateWindow("BUTTON","3",WS_CHILD|WS_VISIBLE|WS_TABSTOP|WS_GROUP|BS_PUSHBUTTON, 127, 10, 20, 23, cw->Window, (PVOID)4, hAppInstance, NULL); while(GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); @@ -65,7 +69,6 @@ WinMain(HINSTANCE hInstance, { WNDCLASS wc; int i; - static THRDCREATEWIN wnds[3]; HANDLE Threads[3]; hAppInstance = hInstance; @@ -152,6 +155,8 @@ LRESULT CALLBACK MultiWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) HDC hDC; RECT Client; HBRUSH Brush; + DWORD Ret; + static COLORREF Colors[] = { RGB(0x00, 0x00, 0x00), @@ -187,7 +192,38 @@ LRESULT CALLBACK MultiWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam) } EndPaint(hWnd, &ps); break; - + + case WM_COMMAND: + switch(LOWORD(wParam)) + { + case 1: + Sleep(20000); + break; + case 2: + case 3: + case 4: + if(SendMessageTimeout(wnds[LOWORD(wParam) - 2].Window, WM_NULL, 0, 0, SMTO_ABORTIFHUNG, 1000, &Ret)) + { + DbgPrint("SendMessageTimeout() OK"); + MessageBox(hWnd, "SendMessageTimeout() OK", NULL, 0); + } + else + { + if(GetLastError() == ERROR_TIMEOUT) + { + DbgPrint("SendMessageTimeout() Timeout"); + MessageBox(hWnd, "SendMessageTimeout() Timeout", NULL, 0); + } + else + { + DbgPrint("SendMessageTimeout() Failed"); + MessageBox(hWnd, "SendMessageTimeout() Failed", NULL, 0); + } + } + break; + } + break; + case WM_DESTROY: PostQuitMessage(0); break;