* implemented a BRegion pool per WindowLayer which is supposed

to cut down on BRegion related allocations, cannot really tell
  if it speeds things up
* used the new BRegion pool in WindowLayer and ViewLayer whereever
  a BRegion was used on the stack
* fixed the debugging stuff in MultiLocker - it will get you into
  the debugger if you
    - try to nest read locks
    - try to write lock when your are a reader already
    - don't match up nested locks when your a writer
    -> but only if you #define DEBUG 1 in the .cpp, is off by default now
* went over WindowLayer, ServerWindow, Desktop and a few other places
  and fixed the locking for use with the MultiLocker, the "a reader can
  not become a writer" is especially tricky, feel free to review the
  changes
* activated the MultiLocker, I tested this quite a bit, if there are
  problems simply turn on DEBUG and you should drop into the debugger
  right where the problem is... hope all is good


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17046 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stephan Aßmus
2006-04-07 19:14:25 +00:00
parent 791b9c2141
commit 39c9925fcf
15 changed files with 471 additions and 259 deletions
+3 -2
View File
@@ -20,8 +20,8 @@ UseFreeTypeHeaders ;
local defines = [ FDefines TEST_MODE=1 ] ;
# USE_DIRECT_WINDOW_TEST_MODE=1
SubDirCcFlags $(defines) -fcheck-memory-usage -D_NO_INLINE_ASM ;
SubDirC++Flags $(defines) -fcheck-memory-usage -D_NO_INLINE_ASM ;
SubDirCcFlags $(defines) ; #-fcheck-memory-usage -D_NO_INLINE_ASM ;
SubDirC++Flags $(defines) ; #-fcheck-memory-usage -D_NO_INLINE_ASM ;
SEARCH_SOURCE += $(appServerDir) [ FDirName $(appServerDir) drawing ] ;
@@ -112,6 +112,7 @@ Server haiku_app_server :
DefaultDecorator.cpp
OffscreenServerWindow.cpp
OffscreenWindowLayer.cpp
RegionPool.cpp
ServerPicture.cpp
ServerScreen.cpp
ViewLayer.cpp