Browse Source

Bugfix: Iterate over devices rather than threads for watchdog (and ADL)

nfactor-troky
Luke Dashjr 13 years ago
parent
commit
9a0bcc8890
  1. 10
      main.c
  2. 1
      miner.h

10
main.c

@ -5005,14 +5005,12 @@ static void *watchdog_thread(void *userdata)
} }
#ifdef HAVE_OPENCL #ifdef HAVE_OPENCL
for (i = 0; i < mining_threads; i++) { for (i = 0; i < total_devices; ++i) {
struct thr_info *thr; struct cgpu_info *cgpu = devices[i];
struct thr_info *thr = cgpu->thread;
bool *enable; bool *enable;
struct cgpu_info *cgpu;
int gpu; int gpu;
thr = &thr_info[i];
cgpu = thr->cgpu;
if (cgpu->api != &opencl_api) if (cgpu->api != &opencl_api)
continue; continue;
/* Use only one thread per device to determine if the GPU is healthy */ /* Use only one thread per device to determine if the GPU is healthy */
@ -6221,6 +6219,8 @@ retry_pools:
if (unlikely(thr_info_create(thr, NULL, miner_thread, thr))) if (unlikely(thr_info_create(thr, NULL, miner_thread, thr)))
quit(1, "thread %d create failed", thr->id); quit(1, "thread %d create failed", thr->id);
cgpu->thread = thr;
} }
} }

1
miner.h

@ -252,6 +252,7 @@ struct cgpu_info {
struct timeval last_message_tv; struct timeval last_message_tv;
int threads; int threads;
struct thr_info *thread;
bool dynamic; bool dynamic;
int intensity; int intensity;

Loading…
Cancel
Save