Browse Source

Clear pool work on a stratum reconnect message.

nfactor-troky
Con Kolivas 11 years ago committed by Noel Maersk
parent
commit
cc2aa215a8
  1. 1
      miner.h
  2. 7
      sgminer.c
  3. 2
      util.c

1
miner.h

@ -1023,6 +1023,7 @@ extern pthread_mutex_t restart_lock;
extern pthread_cond_t restart_cond; extern pthread_cond_t restart_cond;
extern void clear_stratum_shares(struct pool *pool); extern void clear_stratum_shares(struct pool *pool);
extern void clear_pool_work(struct pool *pool);
extern void set_target(unsigned char *dest_target, double diff); extern void set_target(unsigned char *dest_target, double diff);
extern int restart_wait(struct thr_info *thr, unsigned int mstime); extern int restart_wait(struct thr_info *thr, unsigned int mstime);

7
sgminer.c

@ -3598,8 +3598,6 @@ static struct pool *priority_pool(int choice)
return ret; return ret;
} }
static void clear_pool_work(struct pool *pool);
/* Specifies whether we can switch to this pool or not. */ /* Specifies whether we can switch to this pool or not. */
static bool pool_unusable(struct pool *pool) static bool pool_unusable(struct pool *pool)
{ {
@ -5138,7 +5136,7 @@ void clear_stratum_shares(struct pool *pool)
} }
} }
static void clear_pool_work(struct pool *pool) void clear_pool_work(struct pool *pool)
{ {
struct work *work, *tmp; struct work *work, *tmp;
int cleared = 0; int cleared = 0;
@ -5152,6 +5150,9 @@ static void clear_pool_work(struct pool *pool)
} }
} }
mutex_unlock(stgd_lock); mutex_unlock(stgd_lock);
if (cleared)
applog(LOG_INFO, "Cleared %d work items due to stratum disconnect on pool %d", cleared, pool->pool_no);
} }
static int cp_prio(void) static int cp_prio(void)

2
util.c

@ -1691,6 +1691,8 @@ static bool parse_reconnect(struct pool *pool, json_t *val)
applog(LOG_NOTICE, "Reconnect requested from %s to %s", pool->poolname, address); applog(LOG_NOTICE, "Reconnect requested from %s to %s", pool->poolname, address);
clear_pool_work(pool);
mutex_lock(&pool->stratum_lock); mutex_lock(&pool->stratum_lock);
__suspend_stratum(pool); __suspend_stratum(pool);
tmp = pool->sockaddr_url; tmp = pool->sockaddr_url;

Loading…
Cancel
Save