Browse Source

Since we roll work all the time now, we end up staging a lot of work without queueing, so don't queue if we've already got staged work.

Con Kolivas 14 years ago
parent
commit
b81077f36a
1 changed files with 4 additions and 0 deletions
  1. 4 0
      main.c

+ 4 - 0
main.c

@@ -2915,6 +2915,9 @@ static bool queue_request(struct thr_info *thr, bool needed)
 	if (rq >= maxq || rs >= maxq)
 		return true;
 
+	if (rs > rq)
+		goto out;
+
 	/* fill out work request message */
 	wc = calloc(1, sizeof(*wc));
 	if (unlikely(!wc)) {
@@ -2943,6 +2946,7 @@ static bool queue_request(struct thr_info *thr, bool needed)
 		workio_cmd_free(wc);
 		return false;
 	}
+out:
 	inc_queued();
 	return true;
 }