Example #1
0
 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)));
 }
Example #2
0
        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);
            }
        }
Example #3
0
 internal virtual void ExplicitlyMarkPageUnmodifiedUnderExclusiveLock(long pageRef)
 {
     OffHeapPageLock.ExplicitlyMarkPageUnmodifiedUnderExclusiveLock(OffLock(pageRef));
 }
Example #4
0
 internal virtual void UnlockFlush(long pageRef, long stamp, bool success)
 {
     OffHeapPageLock.UnlockFlush(OffLock(pageRef), stamp, success);
 }
Example #5
0
 internal virtual long TryFlushLock(long pageRef)
 {
     return(OffHeapPageLock.TryFlushLock(OffLock(pageRef)));
 }
Example #6
0
 internal virtual void UnlockExclusiveAndTakeWriteLock(long pageRef)
 {
     OffHeapPageLock.UnlockExclusiveAndTakeWriteLock(OffLock(pageRef));
 }
Example #7
0
 internal virtual long UnlockExclusive(long pageRef)
 {
     return(OffHeapPageLock.UnlockExclusive(OffLock(pageRef)));
 }
Example #8
0
 internal virtual bool TryExclusiveLock(long pageRef)
 {
     return(OffHeapPageLock.TryExclusiveLock(OffLock(pageRef)));
 }
Example #9
0
 internal virtual long UnlockWriteAndTryTakeFlushLock(long pageRef)
 {
     return(OffHeapPageLock.UnlockWriteAndTryTakeFlushLock(OffLock(pageRef)));
 }
Example #10
0
 internal virtual void UnlockWrite(long pageRef)
 {
     OffHeapPageLock.UnlockWrite(OffLock(pageRef));
 }
Example #11
0
 internal virtual bool IsExclusivelyLocked(long pageRef)
 {
     return(OffHeapPageLock.IsExclusivelyLocked(OffLock(pageRef)));
 }
Example #12
0
 internal virtual bool IsModified(long pageRef)
 {
     return(OffHeapPageLock.IsModified(OffLock(pageRef)));
 }
Example #13
0
 internal virtual bool ValidateReadLock(long pageRef, long stamp)
 {
     return(OffHeapPageLock.ValidateReadLock(OffLock(pageRef), stamp));
 }
Example #14
0
 internal virtual long TryOptimisticReadLock(long pageRef)
 {
     return(OffHeapPageLock.TryOptimisticReadLock(OffLock(pageRef)));
 }