Skip to content

Commit

Permalink
async_hooks: rename internal emit functions
Browse files Browse the repository at this point in the history
There are two categories of emit functions in async_hooks, those used by
c++ (native) and those used by JavaScript (script). Previously these
were named N for native and S for script. Finally, there was an odd case
where emitInitN was called just init. This makes it more explicit by
using the names emitInitNative and emitInitScript. The other emit
functions are also renamed.

PR-URL: #14152
Reviewed-By: Refael Ackermann <[email protected]>
Reviewed-By: Trevor Norris <[email protected]>
Reviewed-By: James M Snell <[email protected]>
Reviewed-By: Anna Henningsen <[email protected]>
  • Loading branch information
AndreasMadsen authored and addaleax committed Jul 18, 2017
1 parent 0c69ec1 commit 1aac2c0
Showing 1 changed file with 15 additions and 17 deletions.
32 changes: 15 additions & 17 deletions lib/async_hooks.js
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,7 @@ const emitDestroyNative = emitHookFactory(destroy_symbol, 'emitDestroyNative');
// process. They use the same functions as the JS embedder API. These callbacks
// are setup immediately to prevent async_wrap.setupHooks() from being hijacked
// and the cost of doing so is negligible.
async_wrap.setupHooks({ init,
async_wrap.setupHooks({ init: emitInitNative,
before: emitBeforeNative,
after: emitAfterNative,
destroy: emitDestroyNative });
Expand Down Expand Up @@ -228,21 +228,21 @@ class AsyncResource {
if (async_hook_fields[kInit] === 0)
return;

init(this[async_id_symbol], type, triggerAsyncId, this);
emitInitNative(this[async_id_symbol], type, triggerAsyncId, this);
}

emitBefore() {
emitBeforeS(this[async_id_symbol], this[trigger_id_symbol]);
emitBeforeScript(this[async_id_symbol], this[trigger_id_symbol]);
return this;
}

emitAfter() {
emitAfterS(this[async_id_symbol]);
emitAfterScript(this[async_id_symbol]);
return this;
}

emitDestroy() {
emitDestroyS(this[async_id_symbol]);
emitDestroyScript(this[async_id_symbol]);
return this;
}

Expand Down Expand Up @@ -311,7 +311,7 @@ function setInitTriggerId(triggerAsyncId) {
}


function emitInitS(asyncId, type, triggerAsyncId, resource) {
function emitInitScript(asyncId, type, triggerAsyncId, resource) {
// Short circuit all checks for the common case. Which is that no hooks have
// been set. Do this to remove performance impact for embedders (and core).
// Even though it bypasses all the argument checks. The performance savings
Expand All @@ -334,7 +334,7 @@ function emitInitS(asyncId, type, triggerAsyncId, resource) {
if (!Number.isSafeInteger(triggerAsyncId) || triggerAsyncId < 0)
throw new RangeError('triggerAsyncId must be an unsigned integer');

init(asyncId, type, triggerAsyncId, resource);
emitInitNative(asyncId, type, triggerAsyncId, resource);
}

function emitHookFactory(symbol, name) {
Expand Down Expand Up @@ -370,9 +370,7 @@ function emitHookFactory(symbol, name) {
}


// Usage: emitBeforeS(asyncId[, triggerAsyncId]). If triggerAsyncId is omitted
// then asyncId will be used instead.
function emitBeforeS(asyncId, triggerAsyncId) {
function emitBeforeScript(asyncId, triggerAsyncId) {
// CHECK(Number.isSafeInteger(asyncId) && asyncId > 0)
// CHECK(Number.isSafeInteger(triggerAsyncId) && triggerAsyncId > 0)

Expand All @@ -392,15 +390,15 @@ function emitBeforeS(asyncId, triggerAsyncId) {
// TODO(trevnorris): Calling emitBefore/emitAfter from native can't adjust the
// kIdStackIndex. But what happens if the user doesn't have both before and
// after callbacks.
function emitAfterS(asyncId) {
function emitAfterScript(asyncId) {
if (async_hook_fields[kAfter] > 0)
emitAfterNative(asyncId);

popAsyncIds(asyncId);
}


function emitDestroyS(asyncId) {
function emitDestroyScript(asyncId) {
// Return early if there are no destroy callbacks, or on attempt to emit
// destroy on the void.
if (async_hook_fields[kDestroy] === 0 || asyncId === 0)
Expand All @@ -422,7 +420,7 @@ function emitDestroyS(asyncId) {
// change in the future depending on whether it can be determined if there's a
// slim chance of the application remaining stable after handling one of these
// exceptions.
function init(asyncId, type, triggerAsyncId, resource) {
function emitInitNative(asyncId, type, triggerAsyncId, resource) {
processing_hook += 1;
// Use a single try/catch for all hook to avoid setting up one per iteration.
try {
Expand Down Expand Up @@ -467,10 +465,10 @@ module.exports = {
newUid,
initTriggerId,
setInitTriggerId,
emitInit: emitInitS,
emitBefore: emitBeforeS,
emitAfter: emitAfterS,
emitDestroy: emitDestroyS,
emitInit: emitInitScript,
emitBefore: emitBeforeScript,
emitAfter: emitAfterScript,
emitDestroy: emitDestroyScript,
};

// currentId was renamed to executionAsyncId. This was in 8.2.0 during the
Expand Down

0 comments on commit 1aac2c0

Please sign in to comment.