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 }})
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
make -j4 test
(UNIX), orvcbuild test
(Windows) passes- commit message follows commit guidelines
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.
@@ -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.
joyeecheung added author ready
PRs that have at least one approval, no pending requests for changes, and a CI started.
Issues and PRs related to the built-in util module.
labels
joyeecheung added a commit that referenced this pull request
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
PRs that have at least one approval, no pending requests for changes, and a CI started.
Issues and PRs related to general changes in the lib or src directory.
Issues and PRs related to the built-in util module.