[Bug 574] New - Creative use of CreateDialog and DestroyWindow cause busy loop

wine-bugs at winehq.com wine-bugs at winehq.com
Sat Apr 13 06:02:32 CDT 2002


http://bugs.codeweavers.com/show_bug.cgi?id=574

*** shadow/574	Sat Apr 13 06:02:31 2002
--- shadow/574.tmp.10555	Sat Apr 13 06:02:31 2002
***************
*** 0 ****
--- 1,57 ----
+ +============================================================================+
+ | Creative use of CreateDialog and DestroyWindow cause busy loop             |
+ +----------------------------------------------------------------------------+
+ |        Bug #: 574                         Product: Wine                    |
+ |       Status: UNCONFIRMED                 Version: unspecified             |
+ |   Resolution:                            Platform:                         |
+ |     Severity: normal                   OS/Version: All                     |
+ |     Priority: P1                        Component: wine-misc               |
+ +----------------------------------------------------------------------------+
+ |  Assigned To: wine-bugs at winehq.com                                         |
+ |  Reported By: teemu at firsthop.com                                           |
+ |      CC list: Cc:                                                          |
+ +----------------------------------------------------------------------------+
+ |    Milestone: TargetMilestone: ---                                         |
+ |          URL:                                                              |
+ +============================================================================+
+ |                              DESCRIPTION                                   |
+ Following scenario seems to cause busy loop.
+ 
+ WINE version is wine-20020405.tar and it's build in local machine. 
+ 
+ Description:
+ 
+ We have a multithreaded program that is closing down, this code is required to 
+ show the closing dialog while one thread does some background cleanup and 
+ finally calls exit(). This code has been tested in W9X, NT, W2K, XP w/o 
+ problems.
+ 
+ Program is pure W32 application and doesn't therefore link to MFC or any other 
+ extra DLL.
+ 
+ Wine is started with 'wine program.exe'. Default Wine-configuration is used.
+ 
+ Here is what triggers the problem:
+ 
+ o Main program Dialog A receives IDCANCEL from system
+ 
+ o Code that handles IDCANCEL in Dialog A creates Dialog with following     
+ parameters
+   HWND clo = CreateDialog( g_hInst, 
+ MAKEINTRESOURCE(IDD_CLOSING_DIALOG), 0, ClosingDlgProc);
+ 
+ ClosindDlgProc is simple function with only WM_INITIDIALOG handler that 
+ changes one static field to bold text format.
+ 
+ o Dialog A then destroys itself with DestroyWindow-call and returns TRUE from
+   handler function.
+ 
+ o Now the Newly created dialog B appears but it has only frames and title bar. 
+ The client area of dialog is transparent and flickers wildly while wine is eating 
+ CPU.
+ 
+ o Just before the programs exits, the dialog B appears correctly for fraction of 
+ second before closing.
+ 
+ NOTE! There is nearly identical code at the start of program that works fine. Only 
+ significant difference is that Dialog A is not destroyed on the handler.
\ No newline at end of file



More information about the wine-bugs mailing list