Browse Source

Generalise add_pool() functions since they're repeated in add_pool_details.

nfactor-troky
Con Kolivas 13 years ago
parent
commit
d4405de704
  1. 19
      cgminer.c
  2. 2
      miner.h

19
cgminer.c

@ -378,7 +378,8 @@ static void sharelog(const char*disposition, const struct work*work)
applog(LOG_ERR, "sharelog fwrite error"); applog(LOG_ERR, "sharelog fwrite error");
} }
static void add_pool(void) /* Return value is ignored if not called from add_pool_details */
static struct pool *add_pool(void)
{ {
struct pool *pool; struct pool *pool;
@ -393,6 +394,8 @@ static void add_pool(void)
/* Make sure the pool doesn't think we've been idle since time 0 */ /* Make sure the pool doesn't think we've been idle since time 0 */
pool->tv_idle.tv_sec = ~0UL; pool->tv_idle.tv_sec = ~0UL;
return pool;
} }
/* Pool variant of test and set */ /* Pool variant of test and set */
@ -4351,19 +4354,12 @@ char *curses_input(const char *query)
int add_pool_details(bool live, char *url, char *user, char *pass) int add_pool_details(bool live, char *url, char *user, char *pass)
{ {
struct pool *pool = NULL; struct pool *pool;
if (total_pools == MAX_POOLS) if (total_pools == MAX_POOLS)
return ADD_POOL_MAXIMUM; return ADD_POOL_MAXIMUM;
pool = calloc(sizeof(struct pool), 1); pool = add_pool();
if (!pool)
quit(1, "Failed to realloc pools in add_pool_details");
pool->pool_no = total_pools;
pool->prio = total_pools;
if (unlikely(pthread_mutex_init(&pool->pool_lock, NULL)))
quit (1, "Failed to pthread_mutex_init in input_pool");
INIT_LIST_HEAD(&pool->curlring);
pool->rpc_url = url; pool->rpc_url = url;
pool->rpc_user = user; pool->rpc_user = user;
@ -4373,14 +4369,11 @@ int add_pool_details(bool live, char *url, char *user, char *pass)
quit(1, "Failed to malloc userpass"); quit(1, "Failed to malloc userpass");
sprintf(pool->rpc_userpass, "%s:%s", pool->rpc_user, pool->rpc_pass); sprintf(pool->rpc_userpass, "%s:%s", pool->rpc_user, pool->rpc_pass);
pool->tv_idle.tv_sec = ~0UL;
/* Test the pool is not idle if we're live running, otherwise /* Test the pool is not idle if we're live running, otherwise
* it will be tested separately */ * it will be tested separately */
pool->enabled = true; pool->enabled = true;
if (live && !pool_active(pool, false)) if (live && !pool_active(pool, false))
pool->idle = true; pool->idle = true;
pools[total_pools++] = pool;
return ADD_POOL_OK; return ADD_POOL_OK;
} }

2
miner.h

@ -641,6 +641,8 @@ struct pool {
pthread_t submit_thread; pthread_t submit_thread;
pthread_t getwork_thread; pthread_t getwork_thread;
pthread_mutex_t cr_lock;
pthread_cond_t cr_cond;
struct list_head curlring; struct list_head curlring;
}; };

Loading…
Cancel
Save