internal virtual void ToString(long pageRef, StringBuilder sb) { sb.Append("Page[ id = ").Append(ToId(pageRef)); sb.Append(", address = ").Append(GetAddress(pageRef)); sb.Append(", filePageId = ").Append(GetFilePageId(pageRef)); sb.Append(", swapperId = ").Append(GetSwapperId(pageRef)); sb.Append(", usageCounter = ").Append(GetUsageCounter(pageRef)); sb.Append(" ] ").Append(OffHeapPageLock.ToString(OffLock(pageRef))); }
private void ClearMemorySimple(long baseAddress, long pageCount) { long address = baseAddress - Long.BYTES; long initialLockWord = OffHeapPageLock.InitialLockWordWithExclusiveLock(); for (long i = 0; i < pageCount; i++) { UnsafeUtil.putLong(address += Long.BYTES, initialLockWord); // lock word UnsafeUtil.putLong(address += Long.BYTES, 0); // pointer UnsafeUtil.putLong(address += Long.BYTES, 0); // last tx id UnsafeUtil.putLong(address += Long.BYTES, _unboundPageBinding); } }
internal virtual void ExplicitlyMarkPageUnmodifiedUnderExclusiveLock(long pageRef) { OffHeapPageLock.ExplicitlyMarkPageUnmodifiedUnderExclusiveLock(OffLock(pageRef)); }
internal virtual void UnlockFlush(long pageRef, long stamp, bool success) { OffHeapPageLock.UnlockFlush(OffLock(pageRef), stamp, success); }
internal virtual long TryFlushLock(long pageRef) { return(OffHeapPageLock.TryFlushLock(OffLock(pageRef))); }
internal virtual void UnlockExclusiveAndTakeWriteLock(long pageRef) { OffHeapPageLock.UnlockExclusiveAndTakeWriteLock(OffLock(pageRef)); }
internal virtual long UnlockExclusive(long pageRef) { return(OffHeapPageLock.UnlockExclusive(OffLock(pageRef))); }
internal virtual bool TryExclusiveLock(long pageRef) { return(OffHeapPageLock.TryExclusiveLock(OffLock(pageRef))); }
internal virtual long UnlockWriteAndTryTakeFlushLock(long pageRef) { return(OffHeapPageLock.UnlockWriteAndTryTakeFlushLock(OffLock(pageRef))); }
internal virtual void UnlockWrite(long pageRef) { OffHeapPageLock.UnlockWrite(OffLock(pageRef)); }
internal virtual bool IsExclusivelyLocked(long pageRef) { return(OffHeapPageLock.IsExclusivelyLocked(OffLock(pageRef))); }
internal virtual bool IsModified(long pageRef) { return(OffHeapPageLock.IsModified(OffLock(pageRef))); }
internal virtual bool ValidateReadLock(long pageRef, long stamp) { return(OffHeapPageLock.ValidateReadLock(OffLock(pageRef), stamp)); }
internal virtual long TryOptimisticReadLock(long pageRef) { return(OffHeapPageLock.TryOptimisticReadLock(OffLock(pageRef))); }