Joined: 30 Aug 05
Rom Walton wrote the following:
Monday February 23 2009
BOINC screen saver issue
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:
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.
Copyright © 2020 University of California. Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation.