mirror of
https://github.com/GOSTSec/sgminer
synced 2025-01-23 13:04:29 +00:00
Minimise the number of getwork threads we generate.
This commit is contained in:
parent
68f7224cc3
commit
ad90269508
14
cgminer.c
14
cgminer.c
@ -187,6 +187,7 @@ int hw_errors;
|
|||||||
int total_accepted, total_rejected, total_diff1;
|
int total_accepted, total_rejected, total_diff1;
|
||||||
int total_getworks, total_stale, total_discarded;
|
int total_getworks, total_stale, total_discarded;
|
||||||
static int total_queued, staged_rollable;
|
static int total_queued, staged_rollable;
|
||||||
|
static int queued_getworks;
|
||||||
unsigned int new_blocks;
|
unsigned int new_blocks;
|
||||||
static unsigned int work_block;
|
static unsigned int work_block;
|
||||||
unsigned int found_blocks;
|
unsigned int found_blocks;
|
||||||
@ -2460,6 +2461,9 @@ out:
|
|||||||
workio_cmd_free(wc);
|
workio_cmd_free(wc);
|
||||||
if (ce)
|
if (ce)
|
||||||
push_curl_entry(ce, pool);
|
push_curl_entry(ce, pool);
|
||||||
|
mutex_lock(&control_lock);
|
||||||
|
queued_getworks--;
|
||||||
|
mutex_unlock(&control_lock);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3922,7 +3926,17 @@ static void pool_resus(struct pool *pool)
|
|||||||
static bool queue_request(struct thr_info *thr, bool needed)
|
static bool queue_request(struct thr_info *thr, bool needed)
|
||||||
{
|
{
|
||||||
struct workio_cmd *wc;
|
struct workio_cmd *wc;
|
||||||
|
bool doq = true;
|
||||||
|
|
||||||
|
mutex_lock(&control_lock);
|
||||||
|
if (queued_getworks > (mining_threads + opt_queue) * total_pools)
|
||||||
|
doq = false;
|
||||||
|
else
|
||||||
|
queued_getworks++;
|
||||||
|
mutex_unlock(&control_lock);
|
||||||
|
if (!doq)
|
||||||
|
return true;
|
||||||
|
|
||||||
/* fill out work request message */
|
/* fill out work request message */
|
||||||
wc = calloc(1, sizeof(*wc));
|
wc = calloc(1, sizeof(*wc));
|
||||||
if (unlikely(!wc)) {
|
if (unlikely(!wc)) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user