diff options
author | Peter Rust <peter@cornerstonenw.com> | 2013-07-01 15:46:49 -0700 |
---|---|---|
committer | Timothy J Fontaine <tjfontaine@gmail.com> | 2013-07-01 16:02:25 -0700 |
commit | 16b59cbc74c8fe2f8b30f3af4c2f885b7bfb6030 (patch) | |
tree | 4eeb260b297d2d04cf16b080638f9996874b090b /lib/http.js | |
parent | dc3c2d12c850e88de3fe352e5ac9bbea911a66d7 (diff) | |
download | node-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.js | 9 |
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. */ |