]> git.saurik.com Git - redis.git/commitdiff
Add wait states to deal with many connections.
authorDidier Spezia <didier.06@gmail.com>
Sat, 18 Dec 2010 09:58:50 +0000 (10:58 +0100)
committerPieter Noordhuis <pcnoordhuis@gmail.com>
Sat, 18 Dec 2010 11:11:26 +0000 (12:11 +0100)
src/redis-benchmark.c

index ab0d9230c89840a7f9c8e956b0b64cbc36d66186..df3b85fd809ca152e6c5ed2509aa5be72e8a8588 100644 (file)
@@ -278,11 +278,22 @@ static client createClient(int replytype) {
 }
 
 static void createMissingClients(client c) {
 }
 
 static void createMissingClients(client c) {
+    int n = 0;
+
     while(config.liveclients < config.numclients) {
         client new = createClient(c->replytype);
         new->obuf = sdsdup(c->obuf);
         if (config.randomkeys) randomizeClientKey(c);
     while(config.liveclients < config.numclients) {
         client new = createClient(c->replytype);
         new->obuf = sdsdup(c->obuf);
         if (config.randomkeys) randomizeClientKey(c);
+
+        /* Listen backlog is quite limited on most systems */
+        if (++n > 64) {
+            usleep(50000);
+            n = 0;
+        }
     }
     }
+
+    /* Start the timer once the connection are established */
+    config.start = mstime();
 }
 
 static int compareLatency(const void *a, const void *b) {
 }
 
 static int compareLatency(const void *a, const void *b) {