summaryrefslogtreecommitdiff
path: root/lib/http.js
diff options
context:
space:
mode:
authorPeter Rust <peter@cornerstonenw.com>2013-07-01 15:46:49 -0700
committerTimothy J Fontaine <tjfontaine@gmail.com>2013-07-01 16:02:25 -0700
commit16b59cbc74c8fe2f8b30f3af4c2f885b7bfb6030 (patch)
tree4eeb260b297d2d04cf16b080638f9996874b090b /lib/http.js
parentdc3c2d12c850e88de3fe352e5ac9bbea911a66d7 (diff)
downloadnode-16b59cbc74c8fe2f8b30f3af4c2f885b7bfb6030.tar.gz
http: use an unref'd timer to fix delay in exit
There was previously up to a second exit delay when exiting node right after an http request/response, due to the utcDate() function doing a setTimeout to update the cached date/time. Fixing this should increase the performance of our http tests.
Diffstat (limited to 'lib/http.js')
-rw-r--r--lib/http.js9
1 files changed, 6 insertions, 3 deletions
diff --git a/lib/http.js b/lib/http.js
index ab36cd749..2dc1dabb0 100644
--- a/lib/http.js
+++ b/lib/http.js
@@ -22,6 +22,7 @@
var util = require('util');
var net = require('net');
var Stream = require('stream');
+var timers = require('timers');
var url = require('url');
var EventEmitter = require('events').EventEmitter;
var FreeList = require('freelist').FreeList;
@@ -274,12 +275,14 @@ function utcDate() {
if (!dateCache) {
var d = new Date();
dateCache = d.toUTCString();
- setTimeout(function() {
- dateCache = undefined;
- }, 1000 - d.getMilliseconds());
+ timers.enroll(utcDate, 1000 - d.getMilliseconds());
+ timers._unrefActive(utcDate);
}
return dateCache;
}
+utcDate._onTimeout = function() {
+ dateCache = undefined;
+};
/* Abstract base class for ServerRequest and ClientResponse. */