bool MM_ConfigurationStandard::initialize(MM_EnvironmentBase* env) { MM_GCExtensionsBase* extensions = env->getExtensions(); bool result = MM_Configuration::initialize(env); if (result) { extensions->payAllocationTax = extensions->isConcurrentMarkEnabled() || extensions->isConcurrentSweepEnabled(); extensions->setStandardGC(true); } return result; }
bool MM_ConfigurationStandard::initialize(MM_EnvironmentBase* env) { MM_GCExtensionsBase* extensions = env->getExtensions(); bool result = MM_Configuration::initialize(env); if (result) { extensions->payAllocationTax = false; #if defined(OMR_GC_MODRON_CONCURRENT_MARK) extensions->payAllocationTax = extensions->payAllocationTax || extensions->concurrentMark; #endif /* OMR_GC_MODRON_CONCURRENT_MARK */ #if defined(OMR_GC_CONCURRENT_SWEEP) extensions->payAllocationTax = extensions->payAllocationTax || extensions->concurrentSweep; #endif /* OMR_GC_CONCURRENT_SWEEP */ extensions->setStandardGC(true); } return result; }
bool MM_ConfigurationSegregated::initialize(MM_EnvironmentBase *env) { bool success = false; /* OMRTODO investigate why these must be equal or it segfaults. */ MM_GCExtensionsBase *extensions = env->getExtensions(); extensions->splitAvailableListSplitAmount = extensions->gcThreadCount; if (MM_Configuration::initialize(env)) { env->getOmrVM()->_sizeClasses = _delegate.getSegregatedSizeClasses(env); if (NULL != env->getOmrVM()->_sizeClasses) { extensions->setSegregatedHeap(true); extensions->setStandardGC(true); extensions->arrayletsPerRegion = extensions->regionSize / env->getOmrVM()->_arrayletLeafSize; success = true; } } return success; }