Added pooling, removing new and delete in most cases.
pageManager still needs special treatment. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@890 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,6 +1,9 @@
|
||||
#include <cacheManager.h>
|
||||
#include <vpagePool.h>
|
||||
|
||||
cacheManager::cacheManager(void) : area (NULL)
|
||||
extern poolvpage vpagePool;
|
||||
|
||||
cacheManager::cacheManager(void) : area ()
|
||||
{
|
||||
myLock=create_sem(1,"Area Manager Semaphore"); // Should have team name in it.
|
||||
}
|
||||
@@ -33,7 +36,8 @@ void *cacheManager::createBlock(vnode *target,bool readOnly)
|
||||
}
|
||||
lock();
|
||||
// Create a vnode here
|
||||
vpage *newPage = new vpage(begin,target,NULL,((readOnly)?readable:writable),NO_LOCK);
|
||||
vpage *newPage = vpagePool.get();
|
||||
newPage->setup(begin,target,NULL,((readOnly)?readable:writable),NO_LOCK);
|
||||
vpages.add(newPage);
|
||||
cacheMembers.add(newPage);
|
||||
unlock();
|
||||
|
||||
Reference in New Issue
Block a user