From e6c6ce05f801dadefd2ddcb987e33df324043c7e Mon Sep 17 00:00:00 2001 From: Mike Heffner Date: Thu, 26 Apr 2012 10:34:10 -0400 Subject: [PATCH] Fix the race condition to detect if the time out has fired. Simply set a 'timed_out' flag true instead of testing the wall time duration. --- test/graphite_tests.js | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/test/graphite_tests.js b/test/graphite_tests.js index 5c50c2c1..381a9cf2 100644 --- a/test/graphite_tests.js +++ b/test/graphite_tests.js @@ -42,7 +42,7 @@ var statsd_send = function(data,sock,host,port,cb){ var collect_for = function(server,timeout,cb){ var received = []; var in_flight = 0; - var start_time = new Date().getTime(); + var timed_out = false; var collector = function(req,res){ in_flight += 1; var body = ''; @@ -50,7 +50,7 @@ var collect_for = function(server,timeout,cb){ req.on('end',function(){ received = received.concat(body.split("\n")); in_flight -= 1; - if((in_flight < 1) && (new Date().getTime() > (start_time + timeout))){ + if((in_flight < 1) && timed_out){ server.removeListener('request',collector); cb(received); } @@ -58,8 +58,9 @@ var collect_for = function(server,timeout,cb){ } setTimeout(function (){ - server.removeListener('connection',collector); - if((in_flight < 1)){ + timed_out = true; + if((in_flight < 1)) { + server.removeListener('connection',collector); cb(received); } },timeout);