diff --git a/lib/server.js b/lib/server.js index d4bd6b452..32a1af4e2 100644 --- a/lib/server.js +++ b/lib/server.js @@ -213,12 +213,15 @@ var start = function(injector, config, launcher, globalEmitter, preprocess, file }; globalEmitter.emitAsync('exit').then(function() { - // shutdown the server... - webServer.close(removeAllListeners); - - // ...but don't wait forever on webServer.close() because + // don't wait forever on webServer.close() because // pending client connections prevent it from closing. - setTimeout(removeAllListeners, webServerCloseTimeout); + var closeTimeout = setTimeout(removeAllListeners, webServerCloseTimeout); + + // shutdown the server... + webServer.close(function() { + clearTimeout(closeTimeout); + removeAllListeners(); + }); }); };