From 16b59cbc74c8fe2f8b30f3af4c2f885b7bfb6030 Mon Sep 17 00:00:00 2001 From: Peter Rust Date: Mon, 1 Jul 2013 15:46:49 -0700 Subject: 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. --- lib/http.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) (limited to 'lib/http.js') 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. */ -- cgit v1.2.1