From e3281c2643d0c5f7f3df7c2bc049443555a6b607 Mon Sep 17 00:00:00 2001 From: Kano Date: Tue, 21 Feb 2012 20:03:13 +1100 Subject: [PATCH] When API shuts down cgminer don't kill itself --- api.c | 8 +++++++- cgminer.c | 2 +- miner.h | 2 +- 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/api.c b/api.c index 0e0db5b9..40c93534 100644 --- a/api.c +++ b/api.c @@ -349,6 +349,7 @@ struct CODES { { SEVERITY_FAIL, 0, 0, NULL } }; +static int my_thr_id = 0; static int bye = 0; static bool ping = true; @@ -1135,6 +1136,9 @@ void doquit(SOCKETTYPE c, __maybe_unused char *param, bool isjson) send_result(c, isjson); *io_buffer = '\0'; bye = 1; + + PTH(&thr_info[my_thr_id]) = 0L; + kill_work(); } @@ -1347,7 +1351,7 @@ popipo: free(buf); } -void api(void) +void api(int api_thr_id) { char buf[BUFSIZ]; char param_buf[BUFSIZ]; @@ -1372,6 +1376,8 @@ void api(void) bool did; int i; + my_thr_id = api_thr_id; + /* This should be done first to ensure curl has already called WSAStartup() in windows */ sleep(opt_log_interval); diff --git a/cgminer.c b/cgminer.c index 0e2d4496..38e42399 100644 --- a/cgminer.c +++ b/cgminer.c @@ -2802,7 +2802,7 @@ static void *api_thread(void *userdata) pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS, NULL); - api(); + api(api_thr_id); PTH(mythr) = 0L; diff --git a/miner.h b/miner.h index c383f918..c2b0acee 100644 --- a/miner.h +++ b/miner.h @@ -449,7 +449,7 @@ extern int set_engineclock(int gpu, int iEngineClock); extern int set_memoryclock(int gpu, int iMemoryClock); #endif -extern void api(void); +extern void api(int thr_id); #define MAX_GPUDEVICES 16 #define MAX_DEVICES 32