Browse Source

Moved pthread mutex inits up, due to applog using a mutex causing a crash.

Added Win32 compatability to opt.c.
nfactor-troky
Ycros 14 years ago
parent
commit
f20e25e0c0
  1. 20
      ccan/opt/opt.c
  2. 19
      main.c

20
ccan/opt/opt.c

@ -3,7 +3,16 @@
#include <errno.h> #include <errno.h>
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <err.h>
#ifndef WIN32
#include <err.h>
#else
#define errx(status, fmt, ...) { \
fprintf(stderr, fmt, __VA_ARGS__); \
fprintf(stderr, "\n"); \
exit(status); }
#endif
#include <assert.h> #include <assert.h>
#include <stdarg.h> #include <stdarg.h>
#include <stdint.h> #include <stdint.h>
@ -191,11 +200,20 @@ bool opt_parse(int *argc, char *argv[], void (*errlog)(const char *fmt, ...))
{ {
int ret; int ret;
unsigned offset = 0; unsigned offset = 0;
#ifdef WIN32
char *original_argv0 = argv[0];
argv[0] = (char*)basename(argv[0]);
#endif
/* This helps opt_usage. */ /* This helps opt_usage. */
opt_argv0 = argv[0]; opt_argv0 = argv[0];
while ((ret = parse_one(argc, argv, &offset, errlog)) == 1); 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 */ /* parse_one returns 0 on finish, -1 on error */
return (ret == 0); return (ret == 0);

19
main.c

@ -1624,6 +1624,16 @@ int main (int argc, char *argv[])
char name[32]; char name[32];
struct cgpu_info *gpus = NULL, *cpus = NULL; 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 #ifdef WIN32
opt_n_threads = num_processors = 1; opt_n_threads = num_processors = 1;
#else #else
@ -1671,15 +1681,6 @@ int main (int argc, char *argv[])
sprintf(rpc_userpass, "%s:%s", rpc_user, rpc_pass); 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))) if (unlikely(curl_global_init(CURL_GLOBAL_ALL)))
return 1; return 1;
#ifdef HAVE_SYSLOG_H #ifdef HAVE_SYSLOG_H

Loading…
Cancel
Save