Fixed race condition with soft_stop and onTick

This commit is contained in:
MoneroOcean 2018-10-11 13:32:21 +02:00
parent faecf408d6
commit 893aef7c42

View file

@ -218,11 +218,13 @@ void Workers::soft_stop() // stop current workers leaving uv stuff intact (used
m_sequence = 0;
m_paused = 0;
for (size_t i = 0; i < m_workers.size(); ++i) {
m_workers[i]->join();
delete m_workers[i];
}
std::vector<Handle*> Workers::old_workers = m_workers;
m_workers.clear();
for (Handle *handle : old_workers) {
handle->join();
delete handle;
}
}
// setups workers based on specified algorithm (or its basic perf algo more specifically)
@ -281,8 +283,8 @@ void Workers::stop()
m_paused = 0;
m_sequence = 0;
for (size_t i = 0; i < m_workers.size(); ++i) {
m_workers[i]->join();
for (Handle *handle : m_workers) {
handle->join();
}
}