Perform global libcurl initialization
curl_easy_init() is not thread-safe unless curl_global_init() has already been called. It seems that SSL initialization is slow on Windows, so only do that if the mining server has to be accessed via HTTPS. Thanks to @martinwguy for pointing this out.
This commit is contained in:
parent
f80163ec4c
commit
7528a95fe1
1 changed files with 15 additions and 6 deletions
21
cpu-miner.c
21
cpu-miner.c
|
@ -1244,6 +1244,7 @@ void signal_handler(int sig)
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
struct thr_info *thr;
|
struct thr_info *thr;
|
||||||
|
long flags;
|
||||||
int i;
|
int i;
|
||||||
|
|
||||||
rpc_url = strdup(DEF_RPC_URL);
|
rpc_url = strdup(DEF_RPC_URL);
|
||||||
|
@ -1253,6 +1254,20 @@ int main(int argc, char *argv[])
|
||||||
/* parse command line */
|
/* parse command line */
|
||||||
parse_cmdline(argc, argv);
|
parse_cmdline(argc, argv);
|
||||||
|
|
||||||
|
pthread_mutex_init(&applog_lock, NULL);
|
||||||
|
pthread_mutex_init(&stats_lock, NULL);
|
||||||
|
pthread_mutex_init(&g_work_lock, NULL);
|
||||||
|
pthread_mutex_init(&stratum.sock_lock, NULL);
|
||||||
|
pthread_mutex_init(&stratum.work_lock, NULL);
|
||||||
|
|
||||||
|
flags = strncmp(rpc_url, "https:", 6)
|
||||||
|
? (CURL_GLOBAL_ALL & ~CURL_GLOBAL_SSL)
|
||||||
|
: CURL_GLOBAL_ALL;
|
||||||
|
if (curl_global_init(flags)) {
|
||||||
|
applog(LOG_ERR, "CURL initialization failed");
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
#ifndef WIN32
|
#ifndef WIN32
|
||||||
if (opt_background) {
|
if (opt_background) {
|
||||||
i = fork();
|
i = fork();
|
||||||
|
@ -1270,12 +1285,6 @@ int main(int argc, char *argv[])
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
pthread_mutex_init(&applog_lock, NULL);
|
|
||||||
pthread_mutex_init(&stats_lock, NULL);
|
|
||||||
pthread_mutex_init(&g_work_lock, NULL);
|
|
||||||
pthread_mutex_init(&stratum.sock_lock, NULL);
|
|
||||||
pthread_mutex_init(&stratum.work_lock, NULL);
|
|
||||||
|
|
||||||
#if defined(WIN32)
|
#if defined(WIN32)
|
||||||
SYSTEM_INFO sysinfo;
|
SYSTEM_INFO sysinfo;
|
||||||
GetSystemInfo(&sysinfo);
|
GetSystemInfo(&sysinfo);
|
||||||
|
|
Loading…
Reference in a new issue