Browse Source

Do all hotplug_process under the write mining_thr_lock

nfactor-troky
Con Kolivas 11 years ago
parent
commit
757fcb3df6
  1. 13
      cgminer.c

13
cgminer.c

@ -435,12 +435,17 @@ static void applog_and_exit(const char *fmt, ...)
static pthread_mutex_t sharelog_lock; static pthread_mutex_t sharelog_lock;
static FILE *sharelog_file = NULL; static FILE *sharelog_file = NULL;
static struct thr_info *__get_thread(int thr_id)
{
return mining_thr[thr_id];
}
struct thr_info *get_thread(int thr_id) struct thr_info *get_thread(int thr_id)
{ {
struct thr_info *thr; struct thr_info *thr;
rd_lock(&mining_thr_lock); rd_lock(&mining_thr_lock);
thr = mining_thr[thr_id]; thr = __get_thread(thr_id);
rd_unlock(&mining_thr_lock); rd_unlock(&mining_thr_lock);
return thr; return thr;
@ -7848,7 +7853,7 @@ struct device_drv *copy_drv(struct device_drv *drv)
} }
#ifdef USE_USBUTILS #ifdef USE_USBUTILS
static void hotplug_process() static void hotplug_process(void)
{ {
struct thr_info *thr; struct thr_info *thr;
int i, j; int i, j;
@ -7866,7 +7871,6 @@ static void hotplug_process()
wr_lock(&mining_thr_lock); wr_lock(&mining_thr_lock);
mining_thr = realloc(mining_thr, sizeof(thr) * (mining_threads + new_threads + 1)); mining_thr = realloc(mining_thr, sizeof(thr) * (mining_threads + new_threads + 1));
wr_unlock(&mining_thr_lock);
if (!mining_thr) if (!mining_thr)
quit(1, "Failed to hotplug realloc mining_thr"); quit(1, "Failed to hotplug realloc mining_thr");
@ -7885,7 +7889,7 @@ static void hotplug_process()
cgtime(&(cgpu->dev_start_tv)); cgtime(&(cgpu->dev_start_tv));
for (j = 0; j < cgpu->threads; ++j) { for (j = 0; j < cgpu->threads; ++j) {
thr = get_thread(mining_threads); thr = __get_thread(mining_threads);
thr->id = mining_threads; thr->id = mining_threads;
thr->cgpu = cgpu; thr->cgpu = cgpu;
thr->device_thread = j; thr->device_thread = j;
@ -7910,6 +7914,7 @@ static void hotplug_process()
total_devices++; total_devices++;
applog(LOG_WARNING, "Hotplug: %s added %s %i", cgpu->drv->dname, cgpu->drv->name, cgpu->device_id); applog(LOG_WARNING, "Hotplug: %s added %s %i", cgpu->drv->dname, cgpu->drv->name, cgpu->device_id);
} }
wr_unlock(&mining_thr_lock);
adjust_mostdevs(); adjust_mostdevs();
switch_logsize(true); switch_logsize(true);

Loading…
Cancel
Save