From f20e25e0c07013bb926232c6916d6bdb7ab3021f Mon Sep 17 00:00:00 2001 From: Ycros Date: Wed, 6 Jul 2011 19:46:02 +1000 Subject: [PATCH] Moved pthread mutex inits up, due to applog using a mutex causing a crash. Added Win32 compatability to opt.c. --- ccan/opt/opt.c | 20 +++++++++++++++++++- main.c | 19 ++++++++++--------- 2 files changed, 29 insertions(+), 10 deletions(-) diff --git a/ccan/opt/opt.c b/ccan/opt/opt.c index 827109e3..e3ccdbd0 100644 --- a/ccan/opt/opt.c +++ b/ccan/opt/opt.c @@ -3,7 +3,16 @@ #include #include #include -#include + +#ifndef WIN32 + #include +#else + #define errx(status, fmt, ...) { \ + fprintf(stderr, fmt, __VA_ARGS__); \ + fprintf(stderr, "\n"); \ + exit(status); } +#endif + #include #include #include @@ -191,11 +200,20 @@ bool opt_parse(int *argc, char *argv[], void (*errlog)(const char *fmt, ...)) { int ret; unsigned offset = 0; + + #ifdef WIN32 + char *original_argv0 = argv[0]; + argv[0] = (char*)basename(argv[0]); + #endif /* This helps opt_usage. */ opt_argv0 = argv[0]; while ((ret = parse_one(argc, argv, &offset, errlog)) == 1); + + #ifdef WIN32 + argv[0] = original_argv0; + #endif /* parse_one returns 0 on finish, -1 on error */ return (ret == 0); diff --git a/main.c b/main.c index e468ae1b..efc1c533 100644 --- a/main.c +++ b/main.c @@ -1624,6 +1624,16 @@ int main (int argc, char *argv[]) char name[32]; struct cgpu_info *gpus = NULL, *cpus = NULL; + if (unlikely(pthread_mutex_init(&time_lock, NULL))) + return 1; + if (unlikely(pthread_mutex_init(&hash_lock, NULL))) + return 1; + if (unlikely(pthread_mutex_init(&qd_lock, NULL))) + return 1; + if (unlikely(pthread_mutex_init(&stgd_lock, NULL))) + return 1; + + #ifdef WIN32 opt_n_threads = num_processors = 1; #else @@ -1671,15 +1681,6 @@ int main (int argc, char *argv[]) sprintf(rpc_userpass, "%s:%s", rpc_user, rpc_pass); } - if (unlikely(pthread_mutex_init(&time_lock, NULL))) - return 1; - if (unlikely(pthread_mutex_init(&hash_lock, NULL))) - return 1; - if (unlikely(pthread_mutex_init(&qd_lock, NULL))) - return 1; - if (unlikely(pthread_mutex_init(&stgd_lock, NULL))) - return 1; - if (unlikely(curl_global_init(CURL_GLOBAL_ALL))) return 1; #ifdef HAVE_SYSLOG_H