diff --git a/main.c b/main.c index 8b47e10b..3ba39d5a 100644 --- a/main.c +++ b/main.c @@ -5014,14 +5014,12 @@ static void *watchdog_thread(void *userdata) } #ifdef HAVE_OPENCL - for (i = 0; i < mining_threads; i++) { - struct thr_info *thr; + for (i = 0; i < total_devices; ++i) { + struct cgpu_info *cgpu = devices[i]; + struct thr_info *thr = cgpu->thread; bool *enable; - struct cgpu_info *cgpu; int gpu; - thr = &thr_info[i]; - cgpu = thr->cgpu; if (cgpu->api != &opencl_api) continue; /* Use only one thread per device to determine if the GPU is healthy */ @@ -6225,6 +6223,8 @@ retry_pools: if (unlikely(thr_info_create(thr, NULL, miner_thread, thr))) quit(1, "thread %d create failed", thr->id); + + cgpu->thread = thr; } } diff --git a/miner.h b/miner.h index 9743fd6e..7393ebdb 100644 --- a/miner.h +++ b/miner.h @@ -252,6 +252,7 @@ struct cgpu_info { struct timeval last_message_tv; int threads; + struct thr_info *thread; bool dynamic; int intensity;