mirror of
https://github.com/GOSTSec/ccminer
synced 2025-01-11 07:17:53 +00:00
multipool: fix some params like time-limit
This commit is contained in:
parent
ebe95aac2f
commit
c2f319fa86
67
ccminer.cpp
67
ccminer.cpp
@ -177,7 +177,7 @@ static bool opt_background = false;
|
|||||||
bool opt_quiet = false;
|
bool opt_quiet = false;
|
||||||
static int opt_retries = -1;
|
static int opt_retries = -1;
|
||||||
static int opt_fail_pause = 30;
|
static int opt_fail_pause = 30;
|
||||||
static int opt_time_limit = 0;
|
static int opt_time_limit = -1;
|
||||||
static time_t firstwork_time = 0;
|
static time_t firstwork_time = 0;
|
||||||
int opt_timeout = 60; // curl
|
int opt_timeout = 60; // curl
|
||||||
static int opt_scantime = 10;
|
static int opt_scantime = 10;
|
||||||
@ -1677,11 +1677,11 @@ static void *miner_thread(void *userdata)
|
|||||||
max64 = max(1, scan_time + g_work_time - time(NULL));
|
max64 = max(1, scan_time + g_work_time - time(NULL));
|
||||||
|
|
||||||
/* time limit */
|
/* time limit */
|
||||||
if (opt_time_limit && firstwork_time) {
|
if (opt_time_limit > 0 && firstwork_time) {
|
||||||
int passed = (int)(time(NULL) - firstwork_time);
|
int passed = (int)(time(NULL) - firstwork_time);
|
||||||
int remain = (int)(opt_time_limit - passed);
|
int remain = (int)(opt_time_limit - passed);
|
||||||
if (remain < 0) {
|
if (remain < 0) {
|
||||||
if (num_pools > 1 && pools[cur_pooln].time_limit) {
|
if (num_pools > 1 && pools[cur_pooln].time_limit > 0) {
|
||||||
if (!pool_is_switching) {
|
if (!pool_is_switching) {
|
||||||
if (!opt_quiet)
|
if (!opt_quiet)
|
||||||
applog(LOG_INFO, "Pool mining timeout of %ds reached, rotate...", opt_time_limit);
|
applog(LOG_INFO, "Pool mining timeout of %ds reached, rotate...", opt_time_limit);
|
||||||
@ -2366,21 +2366,27 @@ void pool_set_creds(int pooln)
|
|||||||
{
|
{
|
||||||
struct pool_infos *p = &pools[pooln];
|
struct pool_infos *p = &pools[pooln];
|
||||||
|
|
||||||
p->id = pooln;
|
|
||||||
// default flags not 0
|
|
||||||
p->allow_mininginfo = allow_mininginfo;
|
|
||||||
p->allow_gbt = allow_gbt;
|
|
||||||
p->check_dups = check_dups;
|
|
||||||
|
|
||||||
snprintf(p->url, sizeof(p->url), "%s", rpc_url);
|
snprintf(p->url, sizeof(p->url), "%s", rpc_url);
|
||||||
snprintf(p->short_url, sizeof(p->short_url), "%s", short_url);
|
snprintf(p->short_url, sizeof(p->short_url), "%s", short_url);
|
||||||
snprintf(p->user, sizeof(p->user), "%s", rpc_user);
|
snprintf(p->user, sizeof(p->user), "%s", rpc_user);
|
||||||
snprintf(p->pass, sizeof(p->pass), "%s", rpc_pass);
|
snprintf(p->pass, sizeof(p->pass), "%s", rpc_pass);
|
||||||
|
|
||||||
// init pools options with cmdline ones (if set before -c)
|
if (!(p->status & POOL_ST_DEFINED)) {
|
||||||
p->max_diff = opt_max_diff;
|
p->id = pooln;
|
||||||
p->max_rate = opt_max_rate;
|
p->status |= POOL_ST_DEFINED;
|
||||||
p->scantime = opt_scantime;
|
// init pool options as "unset"
|
||||||
|
// until cmdline is not fully parsed...
|
||||||
|
p->max_diff = -1.;
|
||||||
|
p->max_rate = -1.;
|
||||||
|
p->scantime = -1;
|
||||||
|
p->time_limit = -1;
|
||||||
|
|
||||||
|
p->allow_mininginfo = allow_mininginfo;
|
||||||
|
p->allow_gbt = allow_gbt;
|
||||||
|
p->check_dups = check_dups;
|
||||||
|
|
||||||
|
p->status |= POOL_ST_DEFINED;
|
||||||
|
}
|
||||||
|
|
||||||
if (strlen(rpc_url)) {
|
if (strlen(rpc_url)) {
|
||||||
if (!strncasecmp(rpc_url, "stratum", 7))
|
if (!strncasecmp(rpc_url, "stratum", 7))
|
||||||
@ -2389,7 +2395,19 @@ void pool_set_creds(int pooln)
|
|||||||
p->type = POOL_GETWORK; // todo: or longpoll
|
p->type = POOL_GETWORK; // todo: or longpoll
|
||||||
p->status |= POOL_ST_VALID;
|
p->status |= POOL_ST_VALID;
|
||||||
}
|
}
|
||||||
p->status |= POOL_ST_DEFINED;
|
}
|
||||||
|
|
||||||
|
// fill the unset pools options with cmdline ones
|
||||||
|
void pool_init_defaults()
|
||||||
|
{
|
||||||
|
struct pool_infos *p;
|
||||||
|
for (int i=0; i<num_pools; i++) {
|
||||||
|
p = &pools[i];
|
||||||
|
if (p->max_diff <= -1.) p->max_diff = opt_max_diff;
|
||||||
|
if (p->max_rate <= -1.) p->max_rate = opt_max_rate;
|
||||||
|
if (p->scantime == -1) p->scantime = opt_scantime;
|
||||||
|
if (p->time_limit == -1) p->time_limit = opt_time_limit;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// attributes only set by a json pools config
|
// attributes only set by a json pools config
|
||||||
@ -2463,12 +2481,8 @@ bool pool_switch(int pooln)
|
|||||||
short_url = p->short_url; // just a pointer, no alloc
|
short_url = p->short_url; // just a pointer, no alloc
|
||||||
|
|
||||||
opt_scantime = p->scantime;
|
opt_scantime = p->scantime;
|
||||||
|
opt_max_diff = p->max_diff;
|
||||||
if (p->max_diff > -1.)
|
opt_max_rate = p->max_rate;
|
||||||
opt_max_diff = p->max_diff;
|
|
||||||
if (p->max_rate > -1.)
|
|
||||||
opt_max_rate = p->max_rate;
|
|
||||||
|
|
||||||
opt_time_limit = p->time_limit;
|
opt_time_limit = p->time_limit;
|
||||||
|
|
||||||
want_stratum = have_stratum = (p->type & POOL_STRATUM) != 0;
|
want_stratum = have_stratum = (p->type & POOL_STRATUM) != 0;
|
||||||
@ -3334,9 +3348,13 @@ int main(int argc, char *argv[])
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!opt_benchmark && !strlen(rpc_url)) {
|
if (!strlen(rpc_url)) {
|
||||||
fprintf(stderr, "%s: no URL supplied\n", argv[0]);
|
if (!opt_benchmark) {
|
||||||
show_usage_and_exit(1);
|
fprintf(stderr, "%s: no URL supplied\n", argv[0]);
|
||||||
|
show_usage_and_exit(1);
|
||||||
|
}
|
||||||
|
// ensure a pool is set with default params...
|
||||||
|
pool_set_creds(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* init stratum data.. */
|
/* init stratum data.. */
|
||||||
@ -3347,6 +3365,9 @@ int main(int argc, char *argv[])
|
|||||||
pthread_mutex_init(&stats_lock, NULL);
|
pthread_mutex_init(&stats_lock, NULL);
|
||||||
pthread_mutex_init(&g_work_lock, NULL);
|
pthread_mutex_init(&g_work_lock, NULL);
|
||||||
|
|
||||||
|
// ensure default params are set
|
||||||
|
pool_init_defaults();
|
||||||
|
|
||||||
if (opt_debug)
|
if (opt_debug)
|
||||||
pool_dump_infos();
|
pool_dump_infos();
|
||||||
cur_pooln = pool_get_first_valid(0);
|
cur_pooln = pool_get_first_valid(0);
|
||||||
|
Loading…
Reference in New Issue
Block a user