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:
Michael Phipps
2002-08-26 20:14:54 +00:00
parent 3e5d9213bd
commit afea942ffa
15 changed files with 308 additions and 54 deletions
+6 -2
View File
@@ -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();