mirror of https://github.com/BOINC/boinc.git
Mgr: ignore timer events during RPC Wait dialog to prevent unintended recursion and crashes
svn path=/trunk/boinc/; revision=16025
This commit is contained in:
parent
9758c47ffe
commit
ab04d935e8
|
@ -7557,7 +7557,7 @@ David 18 Sept 2008
|
||||||
clientgui/
|
clientgui/
|
||||||
AsyncRPC.cpp,h
|
AsyncRPC.cpp,h
|
||||||
|
|
||||||
Charlie 18 Sep 2008
|
Charlie 19 Sep 2008
|
||||||
Mgr: The system handles timer events during modal dialogs, such as
|
Mgr: The system handles timer events during modal dialogs, such as
|
||||||
while the RPC Wait dialog is shown. This may cause unintended
|
while the RPC Wait dialog is shown. This may cause unintended
|
||||||
recursion and repeatedly posting the same RPC requests from
|
recursion and repeatedly posting the same RPC requests from
|
||||||
|
@ -7567,3 +7567,4 @@ Charlie 18 Sep 2008
|
||||||
clientgui/
|
clientgui/
|
||||||
BOINCBaseFrame.cpp
|
BOINCBaseFrame.cpp
|
||||||
MainDocument.cpp,.h
|
MainDocument.cpp,.h
|
||||||
|
sg_BoincSimpleGUI.cpp
|
||||||
|
|
|
@ -547,6 +547,13 @@ void CSimplePanel::OnProjectsAttachToProject() {
|
||||||
// called from CSimpleFrame::OnRefreshView()
|
// called from CSimpleFrame::OnRefreshView()
|
||||||
void CSimplePanel::OnFrameRender() {
|
void CSimplePanel::OnFrameRender() {
|
||||||
CMainDocument* pDoc = wxGetApp().GetDocument();
|
CMainDocument* pDoc = wxGetApp().GetDocument();
|
||||||
|
wxASSERT(pDoc);
|
||||||
|
|
||||||
|
// OnFrameRender() may be called while SimpleGUI initialization is
|
||||||
|
// in progress due to completion of a periodic get_messages RPC,
|
||||||
|
// causing unintended recursion in CMainDocument::RequestRPC().
|
||||||
|
// Check for that situation here.
|
||||||
|
if (pDoc->WaitingForRPC()) return;
|
||||||
|
|
||||||
if (IsShown()) {
|
if (IsShown()) {
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue