[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: Thu, 07 Feb 2013 20:28:40 +0100

On 07.02.2013 20:01, Terry Fisher wrote:
> m_bBusy is false.
>
> The call stack looks pretty clean:
> TortoiseProc.exe!CSVNStatusListCtrl::OnPaint()
> mfc100ud.dll!CWnd::OnWndMsg() mfc100ud.dll!CWnd::WindowProc()
> mfc100ud.dll!AfxCallWndProc() mfc100ud.dll!AfxWndProc()
> mfc100ud.dll!AfxWndProcBase() user32.dll!UserCallWinProcCheckWow()
> user32.dll!DispatchClientMessage() user32.dll!__fnEMPTY()
>
> I don't believe that SolidWorks is doing anything to cause the
> problem, but that something with the SolidWorks icon generator is
> triggering a race condition between
> CChangedDialog::ChangedStatusThread() and the main GUI thread. I
> tried 2 things:
>
> 1) I replace the call to OnBnClickedRefresh() in
> CChangedDialog::OnInitDialog(), with ChangedStatusThread(), avoiding
> the separate thread. In this case, the dialog initialized properly
> without hanging.

of course: in that case the whole message loop is blocked until
everything is done.

>
> 2) I reverted the change above, and added a Sleep(5000) as the first
> line of CChangedDialog::ChangedStatusThread(). In this case, the
> dialog initialized correctly at first, but after 5 seconds, when the
> thread continued, the dialog went to its "busy" state, and hung
> again.

Yes, the thread triggers a refresh on the UI thread.

Seems there's a problem when invalidating windows from a non-UI thread.
This shouldn't be a problem though: invalidating does not draw anything
(yet) and can be done from different threads (could even be done from
different processes). Only drawing must not be done on non-UI threads.

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=3048026
To unsubscribe from this discussion, e-mail: [users-unsubscribe_at_tortoisesvn.tigris.org].
Received on 2013-02-07 20:28:48 CET

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