From 8dd5dd8a4b995764bddc8d129584cb97ae170133 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Micha=C3=ABl=20Zasso?= Date: Fri, 2 Apr 2021 13:57:53 +0200 Subject: [PATCH] process: do not lazily load AsyncResource MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit It doesn't seem necessary. PR-URL: https://github.com/nodejs/node/pull/38041 Reviewed-By: Colin Ihrig Reviewed-By: Gerhard Stöbich Reviewed-By: Juan José Arboleda Reviewed-By: James M Snell --- lib/internal/process/task_queues.js | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/lib/internal/process/task_queues.js b/lib/internal/process/task_queues.js index f9e72c67075f94..2a14b9dea68080 100644 --- a/lib/internal/process/task_queues.js +++ b/lib/internal/process/task_queues.js @@ -40,6 +40,8 @@ const { validateFunction, } = require('internal/validators'); +const { AsyncResource } = require('async_hooks'); + // *Must* match Environment::TickInfo::Fields in src/env.h. const kHasTickScheduled = 0; @@ -132,16 +134,6 @@ function nextTick(callback) { queue.push(tickObject); } -let AsyncResource; -const defaultMicrotaskResourceOpts = { requireManualDestroy: true }; -function createMicrotaskResource() { - // Lazy load the async_hooks module - if (AsyncResource === undefined) { - AsyncResource = require('async_hooks').AsyncResource; - } - return new AsyncResource('Microtask', defaultMicrotaskResourceOpts); -} - function runMicrotask() { this.runInAsyncScope(() => { const callback = this.callback; @@ -153,10 +145,15 @@ function runMicrotask() { }); } +const defaultMicrotaskResourceOpts = { requireManualDestroy: true }; + function queueMicrotask(callback) { validateFunction(callback, 'callback'); - const asyncResource = createMicrotaskResource(); + const asyncResource = new AsyncResource( + 'Microtask', + defaultMicrotaskResourceOpts + ); asyncResource.callback = callback; enqueueMicrotask(FunctionPrototypeBind(runMicrotask, asyncResource));