L3DT users' community
Large 3D terrain generator

Progress bar bug in Linux with L3DT v2.7 build 22

Please report software faults here.

Progress bar bug in Linux with L3DT v2.7 build 22

Postby Aaron » Mon Aug 10, 2009 12:57 pm

Hi All,

Somewhere along the way I've made a change to the progress bar window that is used in L3DT for loading or saving files, and it's causing L3DT to lock up when running in Linux under Wine (it's fine on Windows, BTW). I'll look into this, and try to have it fixed for the next release.

Best regards,
Aaron.
User avatar
Aaron
Site Admin
 
Posts: 3696
Joined: Sun Nov 20, 2005 2:41 pm
Location: Melbourne, Australia

Postby Aaron » Sat Oct 10, 2009 1:01 pm

Hi All,

I think I've got a handle on this problem. The PeekMessage function in Wine is more expensive than on Windows, and also yields the rest of the processor's timeslice. Regrettably, the progress bar that L3DT uses to display progress on single-threaded calculations calls PeekMessage in a loop to look for the event handler for a click on the cancel button. This loop of PeekMessage calls in Wine stalls the application because it's constantly yielding its timeslices.

In L3DT v2.7 build 36, released today, I have changed the progress bar so that the PeekMessage loop is only invoked when the progress box actually has a cancel button, which is seldom for this particular window . In the next build I have also changed the PeekMessage call to use the PM_NOYIELD flag to ensure that any progress boxes with cancel buttons won't freeze the application when running in Wine.

Cheers,
Aaron.
User avatar
Aaron
Site Admin
 
Posts: 3696
Joined: Sun Nov 20, 2005 2:41 pm
Location: Melbourne, Australia


Return to Bug reports

Who is online

Users browsing this forum: No registered users and 12 guests