1
0
mirror of https://github.com/GOSTSec/sgminer synced 2025-01-11 07:17:58 +00:00

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

This commit is contained in:
Con Kolivas 2011-07-16 11:06:58 +10:00
parent 3cb7ef2b07
commit a1339d723f

15
main.c
View File

@ -1880,13 +1880,8 @@ static void reinit_cputhread(int thr_id)
struct thr_info *thr = &thr_info[thr_id];
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;
}
@ -1913,11 +1908,7 @@ static void reinit_gputhread(int thr_id)
char name[256];
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");
goto failed_out;
}