haiku/headers
John Scipione d34a680c04 Screen Saver: fix race condition
Start the screensaver in the window thread instead of the runner
thread so that there is no lock contention for the window lock in
the runner thread when the saver starts.

The view that gets drawn into is assumed to have been prepared before
being passed to the runner thread, and this assumption has been made
true for the screensaver preview and screen_blanker apps.

Eliminate fHasStarted and the corresponding HasStarted() method in
ScreenSaverRunner as they are no longer needed.

Drawing still happens in the runner thread, and still needs to lock
the window thread potentially causing contention, yet, there
is a timeout here so the contention won't freeze the screensaver window,
only delay drawing the screensaver.

Drawing could be moved to the window thread via message passing to avoid
lock contention with the window but this would defeat a big part of the
purpose of having a separate rendering thread.

This fixes #10125 and #4260
2013-11-14 23:30:26 -05:00
..
build Add symbol versioning for find_directory() 2013-10-05 01:33:26 +02:00
compatibility Drop "protected"-define from bsd-compatibility header 2012-11-05 09:37:55 +01:00
config Merge branch 'master' into x86_64 2012-08-16 21:11:15 +01:00
cpp Allow use of c_str() on wstring. 2012-10-27 17:14:55 +02:00
glibc Make public glibc header printf.h usable. 2013-07-17 18:07:56 +02:00
libs Merge remote-tracking branch 'haiku/master' into package-management 2013-07-08 14:01:00 +02:00
os BPopUpMenu style fixes for documentation, no functional change intended 2013-11-11 19:27:45 -05:00
posix ARM: remove #warning from public header file 2013-10-28 22:04:00 +01:00
private Screen Saver: fix race condition 2013-11-14 23:30:26 -05:00
tools * Moved everything into the SymbolPatcher namespace. 2009-11-05 17:16:17 +00:00