Browse Source

minergate: Flush ready-to-queue list

Luke Dashjr 11 years ago
parent
commit
4634a28406
1 changed files with 12 additions and 1 deletions
  1. 12 1
      driver-minergate.c

+ 12 - 1
driver-minergate.c

@@ -283,9 +283,20 @@ static
 void minergate_queue_flush(struct thr_info * const thr)
 void minergate_queue_flush(struct thr_info * const thr)
 {
 {
 	struct minergate_state * const state = thr->cgpu_data;
 	struct minergate_state * const state = thr->cgpu_data;
+	struct work *work, *worktmp;
 	
 	
-	// TODO: prune state->ready_to_queue
+	// Flush internal ready-to-queue list
+	LL_FOREACH_SAFE(thr->work_list, work, worktmp)
+	{
+		HASH_DEL(thr->work, work);
+		LL_DELETE(thr->work_list, work);
+		free_work(work);
+	}
+	state->ready_to_queue = 0;
+	
+	// Trigger minergate flush
 	state->req_buffer[3] |= MRPF_FLUSH;
 	state->req_buffer[3] |= MRPF_FLUSH;
+	
 	timer_set_delay_from_now(&thr->tv_poll, 0);
 	timer_set_delay_from_now(&thr->tv_poll, 0);
 }
 }