diff options
Diffstat (limited to 'xmrstak/net')
-rw-r--r-- | xmrstak/net/jpsock.cpp | 7 | ||||
-rw-r--r-- | xmrstak/net/jpsock.hpp | 1 | ||||
-rw-r--r-- | xmrstak/net/msgstruct.hpp | 6 |
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)); |