[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: TortoiseProc.exe Hangs on Initial startup

From: Stefan Küng <tortoisesvn_at_gmail.com>
Date: Wed, 30 Jan 2013 21:54:51 +0100

On Wed, Jan 30, 2013 at 9:04 PM, Stefan Küng <tortoisesvn_at_gmail.com> wrote:

> On 30.01.2013 06:44, Terry Fisher wrote:
>
>> I've updated to R23871 - my about dialog shows TortoiseSVN 1.7.11, Build
>> 23871 - 64 Bit.
>>
>> With the ValidateRect() removed (I reverted the file back to what's check
>> in), TortoiseSVN hangs again. If I had a little more time tonight, I would
>> have rebuild the debug version with the BeginPaint/EndPaint calls and
>> looked at the PaintStruct to figure out what region needs repainting. I
>> may have a few minutes to try that tomorrow.
>>
>> I fully support fixing the problem properly...too many bugs are fixed
>> with a work-around without understanding the cause.
>>
>> Let me know if there's anything else you'd like me to try.
>>
>
> To narrow down the problem:
> Settings dialog->General, uncheck "Use Aero dialogs".
> If that fixes the problem, then the problem lies somewhere in the Aero
> subclass painting of the controls.
> If not, then it really seems to be a problem when painting the list
> control. Even though I doubt that the default processing fails to validate
> the paint region...
>
>
Something else here must be wrong: WM_PAINT messages are generated only if
no other messages are in the message queue. So even if the update region
isn't validated, the dialog should still start up normally - using up all
CPU while doing so but still, it would not hang.
So something (plugin, hook, whatever) seems to be calling UpdateWindow() (
http://msdn.microsoft.com/en-us/library/vstudio/dd145167.aspx ) to actually
force the constant redrawing without letting the app continue with the
normal message queue processing.
Assuming you have such a faulty plugin somewhere (SolidWorkds maybe?), then
my guess is that the default drawing of the control does not validate the
region because it knows that redrawing isn't necessary. If that's what's
happening here then the only 'solution' would really be to call
ValidateRect(NULL).

Stefan

-- 
       ___
  oo  // \\      "De Chelonian Mobile"
 (_,\/ \_/ \     TortoiseSVN
   \ \_/_\_/>    The coolest Interface to (Sub)Version Control
   /_/   \_\     http://tortoisesvn.net
------------------------------------------------------
http://tortoisesvn.tigris.org/ds/viewMessage.do?dsForumId=4061&dsMessageId=3046815
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2013-01-30 21:55:18 CET

This is an archived mail posted to the TortoiseSVN Users mailing list.