Page* Cache:: getChangedPage() { Monitor::Synchronized method(monitor); Page* page = changedList.getFirst(); if (page) { page->addRef(); } return page; }
Page* Cache:: getStalePage() { Monitor::Synchronized method(monitor); PageList::Iterator iter = changedList.begin(); Page* page; while ((page = iter.next())) { if (PageTable::isLow() || page->isStale()) { page->addRef(); return page; } } return 0; }