Use new method to set affinity.

This commit is contained in:
XMRig 2018-04-13 09:27:37 +07:00
parent c1800094d0
commit 9ce9147dad
16 changed files with 82 additions and 82 deletions

View file

@ -25,8 +25,7 @@
#include "workers/Handle.h"
Handle::Handle(xmrig::IThread *config, size_t totalThreads, size_t totalWays, int64_t affinity) :
m_affinity(affinity),
Handle::Handle(xmrig::IThread *config, size_t totalThreads, size_t totalWays) :
m_worker(nullptr),
m_totalThreads(totalThreads),
m_totalWays(totalWays),

View file

@ -38,11 +38,10 @@ class IWorker;
class Handle
{
public:
Handle(xmrig::IThread *config, size_t totalThreads, size_t totalWays, int64_t affinity);
Handle(xmrig::IThread *config, size_t totalThreads, size_t totalWays);
void join();
void start(void (*callback) (void *));
inline int64_t affinity() const { return m_affinity; }
inline IWorker *worker() const { return m_worker; }
inline size_t threadId() const { return m_config->index(); }
inline size_t totalThreads() const { return m_totalThreads; }
@ -51,7 +50,6 @@ public:
inline xmrig::IThread *config() const { return m_config; }
private:
int64_t m_affinity;
IWorker *m_worker;
size_t m_totalThreads;
size_t m_totalWays;

View file

@ -42,11 +42,11 @@ Worker::Worker(Handle *handle) :
m_sequence(0),
m_thread(static_cast<xmrig::CpuThread *>(handle->config()))
{
if (Cpu::threads() > 1 && handle->affinity() != -1L) {
Cpu::setAffinity(m_id, handle->affinity());
if (Cpu::threads() > 1 && m_thread->affinity() != -1L) {
Platform::setThreadAffinity(m_thread->affinity());
}
Platform::setThreadPriority(handle->config()->priority());
Platform::setThreadPriority(m_thread->priority());
m_ctx = Mem::create(m_id);
}

View file

@ -130,7 +130,7 @@ void Workers::start(xmrig::Controller *controller)
uv_timer_start(&m_timer, Workers::onTick, 500, 500);
for (xmrig::IThread *thread : threads) {
Handle *handle = new Handle(thread, threads.size(), totalWays, controller->config()->affinity());
Handle *handle = new Handle(thread, threads.size(), totalWays);
m_workers.push_back(handle);
handle->start(Workers::onReady);
}