summaryrefslogtreecommitdiffstats
path: root/xmrstak/net
diff options
context:
space:
mode:
Diffstat (limited to 'xmrstak/net')
-rw-r--r--xmrstak/net/jpsock.cpp7
-rw-r--r--xmrstak/net/jpsock.hpp1
-rw-r--r--xmrstak/net/msgstruct.hpp6
3 files changed, 10 insertions, 4 deletions
diff --git a/xmrstak/net/jpsock.cpp b/xmrstak/net/jpsock.cpp
index ae20e52..7735921 100644
--- a/xmrstak/net/jpsock.cpp
+++ b/xmrstak/net/jpsock.cpp
@@ -566,6 +566,12 @@ bool jpsock::cmd_submit(const char* sJobId, uint32_t iNonce, const uint8_t* bRes
return cmd_ret_wait(cmd_buffer, oResult);
}
+void jpsock::save_nonce(uint32_t nonce)
+{
+ std::unique_lock<std::mutex>(job_mutex);
+ oCurrentJob.iSavedNonce = nonce;
+}
+
bool jpsock::get_current_job(pool_job& job)
{
std::unique_lock<std::mutex>(job_mutex);
@@ -573,7 +579,6 @@ bool jpsock::get_current_job(pool_job& job)
if(oCurrentJob.iWorkLen == 0)
return false;
- oCurrentJob.iResumeCnt++;
job = oCurrentJob;
return true;
}
diff --git a/xmrstak/net/jpsock.hpp b/xmrstak/net/jpsock.hpp
index c2194ad..e94eaad 100644
--- a/xmrstak/net/jpsock.hpp
+++ b/xmrstak/net/jpsock.hpp
@@ -50,6 +50,7 @@ public:
inline uint64_t get_current_diff() { return iJobDiff; }
+ void save_nonce(uint32_t nonce);
bool get_current_job(pool_job& job);
size_t pool_id;
diff --git a/xmrstak/net/msgstruct.hpp b/xmrstak/net/msgstruct.hpp
index 05d15fe..8e8254b 100644
--- a/xmrstak/net/msgstruct.hpp
+++ b/xmrstak/net/msgstruct.hpp
@@ -15,11 +15,11 @@ struct pool_job
// \todo remove workaround needed for amd
uint32_t iTarget32;
uint32_t iWorkLen;
- uint32_t iResumeCnt;
+ uint32_t iSavedNonce;
- pool_job() : iWorkLen(0), iResumeCnt(0) {}
+ pool_job() : iWorkLen(0), iSavedNonce(0) {}
pool_job(const char* sJobID, uint64_t iTarget, const uint8_t* bWorkBlob, uint32_t iWorkLen) :
- iTarget(iTarget), iWorkLen(iWorkLen), iResumeCnt(0)
+ iTarget(iTarget), iWorkLen(iWorkLen), iSavedNonce(0)
{
assert(iWorkLen <= sizeof(pool_job::bWorkBlob));
memcpy(this->sJobID, sJobID, sizeof(pool_job::sJobID));
OpenPOWER on IntegriCloud