int Scheduler::registerMultiResource(std::vector<SerializableObject *> &objects) { if (objects.size() != getCoreCount()) Log(EError, "registerMultiResource() : resource vector does not have the right size!"); LockGuard lock(m_mutex); int resourceID = m_resourceCounter++; ResourceRecord *rec = new ResourceRecord(objects); m_resources[resourceID] = rec; for (size_t i=0; i<objects.size(); ++i) objects[i]->incRef(); #if defined(DEBUG_SCHED) Log(EDebug, "Registered multi resource %i: %s", resourceID, objects[0]->getClass()->getName().c_str()); #endif return resourceID; }
MillerRabinParallelPrimes::MillerRabinParallelPrimes(unsigned long n, unsigned long numberOfBases) : BasePrime("MillerRabinParallelPrimes"), mIsValid(false), mCheckLimit(n), mNumberOfBases(/*numberOfBases*/3), mNumberOfThreads(getCoreCount()+1), mNumberOfPrimes(0) { std::cout << "number of concurrent jobs: " << mNumberOfThreads << std::endl; std::cout << "checking against " << mNumberOfBases << " bases" << std::endl; // nothing to do yet? if (n > 2 && numberOfBases > 2) { mIsValid = true; // object created correctly } }
MillerRabin::MillerRabin(unsigned long n, unsigned long numberOfBases) : BasePrime("MillerRabin"), mIsValid(false), mCheckLimit(n), mNumberOfBases(numberOfBases), mTypeBitSize(sizeof(unsigned long)*8), // !!!!!!!! mNumberOfThreads(getCoreCount()+1), mNumberOfPrimes(1), // test starts with 3, so count the prime 2 here mNumberOfPrimesMutex() { std::cout << "check against " << mNumberOfBases << " bases" << std::endl; // nothing to do yet? if (n > 2 && numberOfBases > 2) { mIsValid = true; // object created correctly } }