Monday, February 23, 2009

Well I believe I have found and fixed the screen saver issue that has been plaguing the BOINC community since shortly after the 6.2 launch.

This bug wasn't easy to track down, and was something of a perfect storm as far as the code was concerned.

The prerequisites for this bug were:

  1. Single monitor
  2. Graphics application window gets created behind the screen saver curtain window
  3. Graphics application gets stuck in an infinite loop or deadlocks on startup


We had some backup code in the screen saver to check for keyboard and mouse activity separately from the project application but after the graphics application deadlocks that code was no longer being executed.

The reason that code was no longer being executed stems from the fact that the BroadcastSystemMessage() Windows API waits for a success/failure return value from the application to which it was sending, since the graphics application itself was deadlocked it caused the screen saver to lock up.

I didn't realize that the BroadcastSystemMessage() API would not timeout on a hung application. So I learned something new this weekend.


If all goes according to plan I'll be releasing a new 6.4 client as well as a 6.6 client with the screen saver fixes today.


----- Rom

Tuesday, March 17, 2009 11:17:24 AM (Eastern Standard Time, UTC-05:00)
Linux users would be very much happier helping BOINC projects if they could have a graphic output, specifically as screensaver, of his contribution.
Please, developers, consider investing some time on it, as the benefits from this improvement will be worth for gathering new users
CSV Corporation
Comments are closed.