Browse Source

Unset the work restart flag sooner in avalon_flush_work to avoid re-entering the flush work function and just reset the queued counter instead of rotating the array to avoid runs of no valid work.

Con Kolivas 12 years ago
parent
commit
e90cf62af1
1 changed files with 4 additions and 3 deletions
  1. 4 3
      driver-avalon.c

+ 4 - 3
driver-avalon.c

@@ -972,12 +972,13 @@ static void avalon_flush_work(struct cgpu_info *avalon)
 	struct avalon_info *info = avalon->device_data;
 	struct thr_info *thr = info->thr;
 
+	thr->work_restart = false;
+
 	mutex_lock(&info->qlock);
-	avalon_rotate_array(avalon);
+	/* Will overwrite any work queued */
+	avalon->queued = 0;
 	pthread_cond_signal(&info->qcond);
 	mutex_unlock(&info->qlock);
-
-	thr->work_restart = false;
 }
 
 static struct api_data *avalon_api_stats(struct cgpu_info *cgpu)