From 380d145c6432894a60e88397de9b52be6e4663e6 Mon Sep 17 00:00:00 2001 From: Con Kolivas Date: Wed, 27 Jul 2011 14:03:01 +1000 Subject: [PATCH] Make threads report out when they're queueing a request and report if they've failed. --- main.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/main.c b/main.c index 2edea731..a363d4c0 100644 --- a/main.c +++ b/main.c @@ -2179,7 +2179,7 @@ static bool queue_request(void) /* fill out work request message */ wc = calloc(1, sizeof(*wc)); if (unlikely(!wc)) { - applog(LOG_ERR, "Failed to tq_pop in queue_request"); + applog(LOG_ERR, "Failed to calloc wc in queue_request"); return false; } @@ -2617,10 +2617,12 @@ static void *miner_thread(void *userdata) timeval_subtract(&diff, &tv_end, &tv_workstart); if (!requested && (diff.tv_sec >= request_interval)) { + thread_reportout(mythr); if (unlikely(!queue_request())) { applog(LOG_ERR, "Failed to queue_request in miner_thread %d", thr_id); goto out; } + thread_reportin(mythr); requested = true; } @@ -2634,6 +2636,8 @@ static void *miner_thread(void *userdata) } out: + thread_reportin(mythr); + applog(LOG_ERR, "Thread %d failure, exiting", thr_id); tq_freeze(mythr->q); return NULL; @@ -2920,10 +2924,12 @@ static void *gpuminer_thread(void *userdata) hash_div = (MAXTHREADS / total_hashes) ? : 1; #endif if (diff.tv_sec > request_interval || work->blk.nonce > request_nonce) { + thread_reportout(mythr); if (unlikely(!queue_request())) { applog(LOG_ERR, "Failed to queue_request in gpuminer_thread %d", thr_id); goto out; } + thread_reportin(mythr); requested = true; } } @@ -2935,6 +2941,8 @@ static void *gpuminer_thread(void *userdata) } } out: + thread_reportin(mythr); + applog(LOG_ERR, "Thread %d failure, exiting", thr_id); tq_freeze(mythr->q); return NULL;