public override void MarkAndSweep(int tid, VMValueManager valueMan) { valueMan.GetValue(srcValue).MarkAndSweep(tid, valueMan); valueMan.GetValue(destValue).MarkAndSweep(tid, valueMan); }
// Mark and sweep for garbage collection and thread locality check public abstract void MarkAndSweep(int tid, VMValueManager valueMan);
public override bool Escape(VMValueManager valueMan) { return valueMan.GetValue(srcValue).Escape || valueMan.GetValue(destValue).Escape; }
/// <summary> /// Returns whether a DelayedAction accesses some escaping data /// Whenever we are unsure, returning true is always safe and correct /// </summary> /// <returns></returns> public virtual bool Escape(VMValueManager valueMan) { return true; }
public override void MarkAndSweep(int tid, VMValueManager valueMan) { // donothing, this is a dummy delayed action }
public override bool Escape(VMValueManager valueMan) { // TODO: check this, it may be false which makes analysis running faster return true; }
public override void MarkAndSweep(int tid, VMValueManager valueMan) { valueMan.GetValue(obj).MarkAndSweep(tid, valueMan); }
public override bool Escape(VMValueManager valueMan) { return valueMan.GetValue(obj).Escape; }