const int64_t Rock::SwapDir::HeaderSize = 16*1024;
Rock::SwapDir::SwapDir(): ::SwapDir("rock"),
- slotSize(HeaderSize), filePath(NULL), map(NULL), io(NULL), allSlots(NULL),
+ slotSize(HeaderSize), filePath(NULL), map(NULL), io(NULL),
waitingForPage(NULL)
{
}
// are refcounted. We up our count once to avoid implicit delete's.
lock();
+ freeSlots = shm_old(Ipc::Mem::PageStack)(freeSlotsPath());
+
Must(!map);
map = new DirMap(inodeMapPath());
map->cleaner = this;
theFile->configure(fileConfig);
theFile->open(O_RDWR, 0644, this);
- freeSlots = shm_old(Ipc::Mem::PageStack)(freeSlotsPath());
-
// Increment early. Otherwise, if one SwapDir finishes rebuild before
// others start, storeRebuildComplete() will think the rebuild is over!
// TODO: move store_dirs_rebuilding hack to store modules that need it.
DiskIOStrategy *io;
RefCount<DiskFile> theFile; ///< cache storage for this cache_dir
- DbCellHeader *allSlots; ///< SlotId to DbCellHeader mapping
Ipc::Mem::Pointer<Ipc::Mem::PageStack> freeSlots; ///< free slots
Ipc::Mem::PageId *waitingForPage; ///< one-page cache for a "hot" free slot