/** * Adds any live entries in this list to liveEntries and returns the index * of the next free slot. * * @param liveEntries * the list to fill with the live entries * @param idx * the first free slot in liveEntries * @param drv * the disk region these entries are on * @param pendingKrfTags * @return the next free slot in liveEntries */ public synchronized void addLiveEntriesToList(ArrayList<KRFEntry> liveEntries, DiskRegionView drv, Map<DiskEntry, VersionHolder> pendingKrfTags) { DiskEntry de = getPrev(); while (de != this) { VersionHolder tag = null; if(pendingKrfTags != null) { tag = pendingKrfTags.get(de); } liveEntries.add(new KRFEntry(drv, de, tag)); de = de.getPrev(); } } /* (non-Javadoc)
/** * Adds any live entries in this list to liveEntries and returns the index * of the next free slot. * * @param liveEntries * the array to fill with the live entries * @param idx * the first free slot in liveEntries * @param drv * the disk region these entries are on * @param pendingKrfTags * @return the next free slot in liveEntries */ public synchronized int addLiveEntriesToList(KRFEntry[] liveEntries, int idx, DiskRegionView drv, Map<DiskEntry, VersionHolder> pendingKrfTags) { DiskEntry de = getPrev(); while (de != this) { VersionHolder tag = null; if (pendingKrfTags != null) { tag = pendingKrfTags.get(de); } liveEntries[idx] = new KRFEntry(drv, de, tag); idx++; de = de.getPrev(); } return idx; }
public synchronized void insert(DiskEntry v) { assert v.getPrev() == null; // checkForDuplicate(v); DiskEntry n = getNext(); setNext(v); n.setPrev(v); v.setNext(n); v.setPrev(this); }
public synchronized void insert(DiskEntry v) { assert v.getPrev() == null; // checkForDuplicate(v); DiskEntry n = getNext(); setNext(v); n.setPrev(v); v.setNext(n); v.setPrev(this); }
public synchronized boolean remove(DiskEntry v) { DiskEntry p = v.getPrev(); if (p != null) { v.setPrev(null); DiskEntry n = v.getNext(); v.setNext(null); n.setPrev(p); p.setNext(n); return true; } else { return false; } }
public synchronized boolean remove(DiskEntry v) { DiskEntry p = v.getPrev(); if (p != null) { v.setPrev(null); DiskEntry n = v.getNext(); v.setNext(null); n.setPrev(p); p.setNext(n); return true; } else { return false; } }
public synchronized void replace(DiskEntry old, DiskEntry v) { DiskEntry p = old.getPrev(); if (p != null) { old.setPrev(null); v.setPrev(p); p.setNext(v); } DiskEntry n = old.getNext(); if (n != null) { old.setNext(null); v.setNext(n); n.setPrev(v); } if (getNext() == old) { setNext(v); } }
public synchronized void replace(DiskEntry old, DiskEntry v) { DiskEntry p = old.getPrev(); if (p != null) { old.setPrev(null); v.setPrev(p); p.setNext(v); } DiskEntry n = old.getNext(); if (n != null) { old.setNext(null); v.setNext(n); n.setPrev(v); } if (getNext() == old) { setNext(v); } }