singrdk/base/Kernel/Bartok/GCs/RememberedSet.cs

40 lines
1.6 KiB
C#

/*******************************************************************/
/* WARNING */
/* This file should be identical in the Bartok and Singularity */
/* depots. Master copy resides in Bartok Depot. Changes should be */
/* made to Bartok Depot and propagated to Singularity Depot. */
/*******************************************************************/
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
namespace System.GCs
{
using System.Threading;
using System.Runtime.CompilerServices;
internal abstract unsafe class RememberedSet
{
// Record a pointer fromAddr->toAddr
internal abstract void RecordReference(ref Object reference,
Object toObj);
internal abstract void RecordReference(UIntPtr* fromAddr,
Object toObj);
internal abstract void RecordClonedObject(Object obj);
// Clean out stale entries for all threads
internal abstract void Clean();
// Clean out stale entries for given thread
internal abstract void Clean(Thread thread);
// Visit all locations in remset
internal abstract void Scan(NonNullReferenceVisitor visitor,
PageType genToCollect);
// Remove all entries in remset
internal abstract void Reset();
// Remove duplicates in remset
internal abstract void Uniquify();
}
}