util: access process states lazily in debuglog by joyeecheung · Pull Request #27281 · nodejs/node (original) (raw)

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Conversation4 Commits1 Checks0 Files changed

Conversation

This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.Learn more about bidirectional Unicode characters

[ Show hidden characters]({{ revealButtonHref }})

joyeecheung

debuglog() depends on process.pid and process.env.NODE_DEBUG,
so it needs to be called lazily in top scopes of internal modules
that may be loaded before these run time states are allowed to
be accessed. This patch makes its implementation lazy by default,
the process states are only accessed when the returned debug
function is called for the first time.

Checklist

@joyeecheung

debuglog() depends on process.pid and process.env.NODE_DEBUG, so it needs to be called lazily in top scopes of internal modules that may be loaded before these run time states are allowed to be accessed. This patch makes its implementation lazy by default, the process states are only accessed when the returned debug function is called for the first time.

@nodejs-github-bot

@nodejs-github-bot

joyeecheung

@@ -31,7 +31,7 @@ function emitWarningIfNeeded(set) {
}
}
function debuglog(set) {
function debuglogImpl(set) {
set = set.toUpperCase();
if (!debugs[set]) {
if (debugEnvRegex.test(set)) {

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Note that since process.env.NODE_DEBUG is saved above during pre-execution, even though the saved value is accessed lazily, it's still saved as soon as possible.

BridgeAR

lpinca

richardlau

@joyeecheung joyeecheung added author ready

PRs that have at least one approval, no pending requests for changes, and a CI started.

util

Issues and PRs related to the built-in util module.

labels

Apr 18, 2019

ZYSzys

@joyeecheung

joyeecheung added a commit that referenced this pull request

Apr 19, 2019

@joyeecheung

debuglog() depends on process.pid and process.env.NODE_DEBUG, so it needs to be called lazily in top scopes of internal modules that may be loaded before these run time states are allowed to be accessed. This patch makes its implementation lazy by default, the process states are only accessed when the returned debug function is called for the first time.

PR-URL: #27281 Reviewed-By: Ruben Bridgewater ruben@bridgewater.de Reviewed-By: Luigi Pinca luigipinca@gmail.com Reviewed-By: Richard Lau riclau@uk.ibm.com Reviewed-By: Yongsheng Zhang zyszys98@gmail.com

This was referenced

Apr 23, 2019

Labels

author ready

PRs that have at least one approval, no pending requests for changes, and a CI started.

lib / src

Issues and PRs related to general changes in the lib or src directory.

util

Issues and PRs related to the built-in util module.