Merge branch 'donate'
This commit is contained in:
commit
f6fe59ba17
4 changed files with 41 additions and 34 deletions
|
@ -589,6 +589,11 @@ void Client::ping()
|
|||
|
||||
void Client::reconnect()
|
||||
{
|
||||
if(m_failures == -1)
|
||||
{
|
||||
return m_listener->onClose(this, -1);
|
||||
}
|
||||
|
||||
setState(ConnectingState);
|
||||
|
||||
#ifndef XMRIG_PROXY_PROJECT
|
||||
|
@ -598,11 +603,6 @@ void Client::reconnect()
|
|||
}
|
||||
#endif
|
||||
|
||||
if(m_failures == -1)
|
||||
{
|
||||
return m_listener->onClose(this, -1);
|
||||
}
|
||||
|
||||
m_failures++;
|
||||
m_listener->onClose(this, (int) m_failures);
|
||||
|
||||
|
|
|
@ -124,7 +124,7 @@ void Network::onJob(Client* client, const Job & job)
|
|||
LOG_INFO("new job from " << client->host() << ":" << client->port() << " diff " << job.diff());
|
||||
}
|
||||
|
||||
if(m_donate && m_donate->isActive() && client->id() != -1 && !m_donate->reschedule())
|
||||
if(m_donate && m_donate->reschedule(client->id() == -1))
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@ enum
|
|||
|
||||
DonateStrategy::DonateStrategy(const std::string & agent, IStrategyListener* listener) :
|
||||
m_active(false),
|
||||
m_suspended(false),
|
||||
m_starting(false),
|
||||
m_listener(listener),
|
||||
m_donateTicks(0),
|
||||
m_target(0),
|
||||
|
@ -91,23 +91,42 @@ DonateStrategy::DonateStrategy(const std::string & agent, IStrategyListener* lis
|
|||
}
|
||||
|
||||
|
||||
bool DonateStrategy::reschedule()
|
||||
bool DonateStrategy::reschedule(const bool isDonate)
|
||||
{
|
||||
const uint64_t donateTicks = Options::i()->donateMinutes() * C_TICKS_PER_MINUTE;
|
||||
if(m_donateTicks < donateTicks)
|
||||
if(isDonate)
|
||||
{
|
||||
const uint64_t donateTargetTicks = Options::i()->donateMinutes() * C_TICKS_PER_MINUTE;
|
||||
LOG_DEBUG("Dev donate ticks: " << m_donateTicks << "/" << donateTargetTicks);
|
||||
if(m_donateTicks < donateTargetTicks)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
m_target = std::max(int(C_ONE_CICLE_IN_TICKS - m_donateTicks), int(C_ONE_TICK)) + m_ticks;
|
||||
m_active = false;
|
||||
|
||||
LOG_NOTICE("Dev donate: finished!");
|
||||
stop();
|
||||
m_suspended = false;
|
||||
}
|
||||
else
|
||||
{
|
||||
if(m_starting == true || m_active == true)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
LOG_DEBUG("Non-Dev donate ticks: " << m_ticks << "/" << m_target);
|
||||
if(m_ticks < m_target)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
LOG_NOTICE("Dev donate: start!");
|
||||
connect();
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
int64_t DonateStrategy::submit(const JobResult & result)
|
||||
{
|
||||
return m_client->submit(result);
|
||||
|
@ -116,17 +135,16 @@ int64_t DonateStrategy::submit(const JobResult & result)
|
|||
|
||||
void DonateStrategy::connect()
|
||||
{
|
||||
m_suspended = false;
|
||||
m_client->connect();
|
||||
m_starting = true;
|
||||
}
|
||||
|
||||
|
||||
void DonateStrategy::stop()
|
||||
{
|
||||
m_suspended = true;
|
||||
m_donateTicks = 0;
|
||||
m_client->disconnect();
|
||||
|
||||
LOG_NOTICE("dev donate finished");
|
||||
m_starting = false;
|
||||
}
|
||||
|
||||
|
||||
|
@ -134,19 +152,8 @@ void DonateStrategy::tick(uint64_t now)
|
|||
{
|
||||
m_client->tick(now);
|
||||
|
||||
if(m_suspended)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
m_ticks++;
|
||||
|
||||
if(m_ticks == m_target)
|
||||
{
|
||||
LOG_NOTICE("dev donate start");
|
||||
m_client->connect();
|
||||
}
|
||||
|
||||
if(isActive())
|
||||
{
|
||||
m_donateTicks++;
|
||||
|
|
|
@ -38,7 +38,7 @@ class DonateStrategy : public IStrategy, public IClientListener
|
|||
{
|
||||
public:
|
||||
DonateStrategy(const std::string & agent, IStrategyListener* listener);
|
||||
bool reschedule();
|
||||
bool reschedule(const bool isDonate);
|
||||
|
||||
inline bool isActive() const override
|
||||
{
|
||||
|
@ -59,7 +59,7 @@ protected:
|
|||
|
||||
private:
|
||||
bool m_active;
|
||||
bool m_suspended;
|
||||
bool m_starting;
|
||||
Client* m_client;
|
||||
IStrategyListener* m_listener;
|
||||
uint64_t m_donateTicks;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue