Developer forums (C::B DEVELOPMENT STRICTLY!) > Development

Batch build problems (hangs/stalls if log window is not active)

<< < (5/7) > >>

simons:
Great. I can confirm that the patch solves the problem for the small examples with/without using the fake_gcc. I am currently compiling the projects where I originally observed the problem in a Jenkins environment with various compilers. It's looking very good so far...

simons:
I can confirm now that the patch fixes the problem. I am able to batch build my projects with various compilers unattendedly on my Desktop and also on a Jenkins CI server. Thank's a lot for the support and the submitted fix. Please let me know if there is anything I can do to help with further steps, especially anything that would help towards integrating a fix for the next CB release.

oBFusCATed:
Can you try this patch (remove the old one):

--- Code: ---diff --git a/src/src/main.cpp b/src/src/main.cpp
index 886eead0f..7d4b74cc6 100644
--- a/src/src/main.cpp
+++ b/src/src/main.cpp
@@ -2720,7 +2720,6 @@ void MainFrame::OnApplicationClose(wxCloseEvent& event)

     CodeBlocksEvent evt(cbEVT_APP_START_SHUTDOWN);
     Manager::Get()->ProcessEvent(evt);
-    Manager::Yield();

     m_InitiatedShutdown = true;
     Manager::BlockYields(true);

--- End code ---

The other patch just works around the problem. This one tries to fix it.

BlueHazzard:
Can you explain why a change in the shut down code should help against an pipe/idle/flush problem happening in the middle of the application? The shutdown function is never called on the way to the bug, so why should it make any difference?

oBFusCATed:
Calling wxWindow::Close adds some stuff to be cleared on the next idle (PendingDelete or something).
Closing the frame calls the OnApplicationClose method and when Yield is called the PendingDelete stuff is executed too early.
Some code after the Yield uses controls destroyed in PendingDelete. If you check my comment in the ticket you'll see the backtraces.

Navigation

[0] Message Index

[#] Next page

[*] Previous page

Go to full version