mirror of
https://github.com/GOSTSec/sgminer
synced 2025-02-02 01:44:23 +00:00
Set the lp_sent variable under lock since there will almost always be a race on setting this variable, potentially leading to multiple LPs being sent
out.
This commit is contained in:
parent
136b50d51c
commit
f4284a21a8
10
cgminer.c
10
cgminer.c
@ -336,7 +336,7 @@ static bool pool_tset(struct pool *pool, bool *var)
|
||||
return ret;
|
||||
}
|
||||
|
||||
static bool pool_tclear(struct pool *pool, bool *var)
|
||||
bool pool_tclear(struct pool *pool, bool *var)
|
||||
{
|
||||
bool ret;
|
||||
|
||||
@ -1592,10 +1592,10 @@ static bool get_upstream_work(struct work *work, bool lagging)
|
||||
|
||||
/* If this is the current pool and supports longpoll but has not sent
|
||||
* a longpoll, send one now */
|
||||
if (unlikely(pool == current_pool() && !pool->is_lp && pool->hdr_path && !pool->lp_sent)) {
|
||||
pool->lp_sent = true;
|
||||
req_longpoll = true;
|
||||
url = pool->lp_url;
|
||||
if (unlikely(!pool->is_lp && pool == current_pool() && pool->hdr_path &&
|
||||
!pool_tset(pool, &pool->lp_sent))) {
|
||||
req_longpoll = true;
|
||||
url = pool->lp_url;
|
||||
}
|
||||
|
||||
retry:
|
||||
|
1
miner.h
1
miner.h
@ -601,6 +601,7 @@ extern void switch_pools(struct pool *selected);
|
||||
extern void write_config(FILE *fcfg);
|
||||
extern void log_curses(int prio, const char *f, va_list ap);
|
||||
extern void clear_logwin(void);
|
||||
extern bool pool_tclear(struct pool *pool, bool *var);
|
||||
extern struct thread_q *tq_new(void);
|
||||
extern void tq_free(struct thread_q *tq);
|
||||
extern bool tq_push(struct thread_q *tq, void *data);
|
||||
|
Loading…
x
Reference in New Issue
Block a user