001 /* 002 * This file is part of the Jikes RVM project (http://jikesrvm.org). 003 * 004 * This file is licensed to You under the Eclipse Public License (EPL); 005 * You may not use this file except in compliance with the License. You 006 * may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/eclipse-1.0.php 009 * 010 * See the COPYRIGHT.txt file distributed with this work for information 011 * regarding copyright ownership. 012 */ 013 package org.mmtk.utility; 014 015 import org.mmtk.utility.options.*; 016 017 import org.vmmagic.unboxed.*; 018 import org.vmmagic.pragma.*; 019 020 /* 021 */ 022 @Uninterruptible abstract class CycleDetector { 023 024 static { 025 Options.cycleFilterThreshold = new CycleFilterThreshold(); 026 Options.cycleMetaDataLimit = new CycleMetaDataLimit(); 027 Options.cycleTriggerThreshold = new CycleTriggerThreshold(); 028 } 029 030 abstract boolean collectCycles(boolean primary, boolean time); 031 abstract void possibleCycleRoot(ObjectReference object); 032 }