Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [platform-swt-dev] UI freezes after upgrading to 3.5.x


Hi Silenio,

Thanks for the tip, I'll try rolling my own SWT 3.5 and see where that takes me.

Jason Chown
Sony Computer Entertainment Europe Limited
http://eu.playstation.com








Silenio Quarti <Silenio_Quarti@xxxxxxxxxx>
Sent by: platform-swt-dev-bounces@xxxxxxxxxxx

17/11/09 22:04

Please respond to
"Eclipse Platform SWT component developers list." <platform-swt-dev@xxxxxxxxxxx>


To
"Eclipse Platform SWT component developers list." <platform-swt-dev@xxxxxxxxxxx>
cc
Subject
Re: [platform-swt-dev] UI freezes after upgrading to 3.5.x






It is hard to guess without a testcase. The only change between 3.4.x and 3.5.x in the wake/ayncExec area that comes to mind is a change in org.eclipse.swt.widgets.Display.foregroundIdleProc() to fix this bug:


https://bugs.eclipse.org/bugs/show_bug.cgi?id=256469

You could get SWT from CVS and hack the code. Either start with 3.4.x and add the change (see if the problem starts happening) or start with 3.5.x and remove the change (see if the problem goes away).


Please open a bug report if you find a simple testcase that reproduces the problem.


3.5.x code


int
/*long*/ foregroundIdleProc (int /*long*/ code, int /*long*/ wParam, int /*long*/ lParam) {
       
if (code >= 0) {
               
if (runMessages && getMessageCount () != 0) {
                       
if (runMessagesInIdle) {
                               
if (runMessagesInMessageProc) {
                                       OS.PostMessage (hwndMessage, SWT_RUNASYNC, 0, 0);

                               }
else {
                                       runAsyncMessages (
false);
                               }

                       }

                       MSG msg =
new MSG();
                       
int flags = OS.PM_NOREMOVE | OS.PM_NOYIELD | OS.PM_QS_INPUT | OS.PM_QS_POSTMESSAGE;
                       
if (!OS.PeekMessage (msg, 0, 0, 0, flags)) wakeThread ();
               }

       }

       
return OS.CallNextHookEx (idleHook, (int)/*64*/code, wParam, lParam);
}


3.4.x code


int
/*long*/ foregroundIdleProc (int /*long*/ code, int /*long*/ wParam, int /*long*/ lParam) {
       
if (code >= 0) {
               
if (runMessages && getMessageCount () != 0) {
                       
if (runMessagesInIdle) {
                               
if (runMessagesInMessageProc) {
                                       OS.PostMessage (hwndMessage, SWT_RUNASYNC, 0, 0);

                               }
else {
                                       runAsyncMessages (
false);
                               }

                       }

                       wakeThread ();

               }

       }

       
return OS.CallNextHookEx (idleHook, (int)/*64*/code, wParam, lParam);
}



Silenio



From: Jason_Chown@xxxxxxxx
To: platform-swt-dev@xxxxxxxxxxx
Date: 11/17/2009 11:42 AM
Subject: [platform-swt-dev] UI freezes after upgrading to 3.5.x
Sent by: platform-swt-dev-bounces@xxxxxxxxxxx







Hi,


We have a thread-happy UI that functions nicely in 3.4.x.


Since upgrading, after about 10 seconds of running the UI will freeze, and only update when the mouse cursor is moved over the window (or triggering any other Windows WM_ message). Breaking into the main (UI) thread shows it stuck inside OS.WaitMessage(). The rest of the application has carried along regardless, except for Display.syncExec calls which are blocked. Display.asyncExec calls seemed to get queued and processed when the app wakens.


This only happens on Win32 (x86 and x64) and not on Mac OS X or Linux, which function fine.


Does this sound familiar?


I'm trying to build a test case/narrow down the problem, but it's elusive.


(Apologies if this isn't the right newsgroup for this message, feel free to punt me onto another).



Jason Chown
Sony Computer Entertainment Europe Limited

http://eu.playstation.com

**********************************************************************

This email and any files transmitted with it are confidential and intended solely for the use of the individual or entity to whom they are addressed. If you have received this email in error please notify postmaster@xxxxxxxx

This footnote also confirms that this email message has been checked for all known viruses.

Sony Computer Entertainment Europe Limited

Registered Office: 10 Great Marlborough Street, London W1F 7LP, United Kingdom

Registered in England: 3277793

**********************************************************************

 _______________________________________________
platform-swt-dev mailing list
platform-swt-dev@xxxxxxxxxxx

https://dev.eclipse.org/mailman/listinfo/platform-swt-dev_______________________________________________
platform-swt-dev mailing list
platform-swt-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/platform-swt-dev


Back to the top