Browse Source

Only pthread_join the mining threads if they exist as determined by pthread_cancel.

Con Kolivas 14 years ago
parent
commit
a1339d723f
1 changed files with 3 additions and 12 deletions
  1. 3 12
      main.c

+ 3 - 12
main.c

@@ -1880,13 +1880,8 @@ static void reinit_cputhread(int thr_id)
 	struct thr_info *thr = &thr_info[thr_id];
 	struct thr_info *thr = &thr_info[thr_id];
 
 
 	tq_freeze(thr->q);
 	tq_freeze(thr->q);
-	if (unlikely(pthread_cancel(thr->pth))) {
-		applog(LOG_ERR, "Failed to pthread_cancel in reinit_gputhread");
-		goto failed_out;
-	}
-
-	if (unlikely(pthread_join(thr->pth, NULL))) {
-		applog(LOG_ERR, "Failed to pthread_join in reinit_gputhread");
+	if (!(pthread_cancel(thr->pth)) && pthread_join(thr->pth, NULL)) {
+		applog(LOG_ERR, "Failed to pthread_join in reinit_cputhread");
 		goto failed_out;
 		goto failed_out;
 	}
 	}
 
 
@@ -1913,11 +1908,7 @@ static void reinit_gputhread(int thr_id)
 	char name[256];
 	char name[256];
 
 
 	tq_freeze(thr->q);
 	tq_freeze(thr->q);
-	if (unlikely(pthread_cancel(thr->pth))) {
-		applog(LOG_ERR, "Failed to pthread_cancel in reinit_gputhread");
-		goto failed_out;
-	}
-	if (unlikely(pthread_join(thr->pth, NULL))) {
+	if (!(pthread_cancel(thr->pth)) && pthread_join(thr->pth, NULL)) {
 		applog(LOG_ERR, "Failed to pthread_join in reinit_gputhread");
 		applog(LOG_ERR, "Failed to pthread_join in reinit_gputhread");
 		goto failed_out;
 		goto failed_out;
 	}
 	}