Merge pull request #2837 from SChernykh/dev

RandomX: don't restart mining threads when the seed changes
This commit is contained in:
xmrig 2021-12-26 18:03:48 +07:00 committed by GitHub
commit f5447088cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 3 deletions

View file

@ -134,7 +134,7 @@ void xmrig::CpuWorker<N>::allocateRandomX_VM()
RxDataset *dataset = Rx::dataset(m_job.currentJob(), node()); RxDataset *dataset = Rx::dataset(m_job.currentJob(), node());
while (dataset == nullptr) { while (dataset == nullptr) {
std::this_thread::sleep_for(std::chrono::milliseconds(200)); std::this_thread::sleep_for(std::chrono::milliseconds(20));
if (Nonce::sequence(Nonce::CPU) == 0) { if (Nonce::sequence(Nonce::CPU) == 0) {
return; return;
@ -246,7 +246,7 @@ void xmrig::CpuWorker<N>::start()
while (Nonce::sequence(Nonce::CPU) > 0) { while (Nonce::sequence(Nonce::CPU) > 0) {
if (Nonce::isPaused()) { if (Nonce::isPaused()) {
do { do {
std::this_thread::sleep_for(std::chrono::milliseconds(200)); std::this_thread::sleep_for(std::chrono::milliseconds(20));
} }
while (Nonce::isPaused() && Nonce::sequence(Nonce::CPU) > 0); while (Nonce::isPaused() && Nonce::sequence(Nonce::CPU) > 0);

View file

@ -553,7 +553,13 @@ void xmrig::Miner::setJob(const Job &job, bool donate)
# ifdef XMRIG_ALGO_RANDOMX # ifdef XMRIG_ALGO_RANDOMX
if (job.algorithm().family() == Algorithm::RANDOM_X && !Rx::isReady(job)) { if (job.algorithm().family() == Algorithm::RANDOM_X && !Rx::isReady(job)) {
stop(); if (d_ptr->algorithm != job.algorithm()) {
stop();
}
else {
Nonce::pause(true);
Nonce::touch();
}
} }
# endif # endif

View file

@ -154,6 +154,8 @@ void xmrig::RxQueue::backgroundInit()
continue; continue;
} }
// Update seed here again in case there was more than one item in the queue
m_seed = item.seed;
m_state = STATE_IDLE; m_state = STATE_IDLE;
m_async->send(); m_async->send();
} }