Rich Trott
e1b336ff55
Revert "http2: streamline OnStreamRead streamline memory accounting"
...
This reverts commit 51ccf1b5e9 .
Fixes: https://github.com/nodejs/node/issues/31089
PR-URL: https://github.com/nodejs/node/pull/34315
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Denys Otrishko <shishugi@gmail.com >
2020-07-14 07:28:45 -07:00
Anna Henningsen
a038199265
src,doc,test: remove String::New default parameter
...
`kNormal` has been the implicit default for a while now (since V8 7.6).
Refs: https://github.com/v8/v8/commit/e0d7f816990ada28ebe1281ca9431236ef8c6e4f
PR-URL: https://github.com/nodejs/node/pull/34248
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: James M Snell <jasnell@gmail.com >
2020-07-14 15:13:34 +02:00
Anna Henningsen
725cf4764a
worker: add option to track unmanaged file descriptors
...
Add a public option for Workers which adds tracking for raw
file descriptors, as currently, those resources are not cleaned
up, unlike e.g. `FileHandle`s.
PR-URL: https://github.com/nodejs/node/pull/34303
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2020-07-14 15:07:20 +02:00
Anna Henningsen
b58c06d92c
src: add option to track unmanaged file descriptors
...
Add the ability to track “raw” file descriptors, i.e. integers returned
by `fs.open()`, and close them on `Environment` shutdown, to match the
behavior for all other resource types (which are also closed on
shutdown).
PR-URL: https://github.com/nodejs/node/pull/34303
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com >
2020-07-14 15:07:14 +02:00
Anna Henningsen
4cac54362a
src: remove redundant snprintf
...
PR-URL: https://github.com/nodejs/node/pull/34282
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
Reviewed-By: Luigi Pinca <luigipinca@gmail.com >
Reviewed-By: Anto Aravinth <anto.aravinth.cse@gmail.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: James M Snell <jasnell@gmail.com >
2020-07-14 15:05:56 +02:00
Anna Henningsen
874460a1d1
src: refactor TimerWrap lifetime management
...
Split `Stop(true)` and `Stop(false)` into separate methods since the
actions performed by these are fully distinct.
PR-URL: https://github.com/nodejs/node/pull/34252
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Zeyu Yang <himself65@outlook.com >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-07-14 15:04:46 +02:00
Anna Henningsen
e2f9dc6e5a
src: remove user_data from TimerWrap
...
There’s no point in having an opaque user data pointer when we’re
already using `std::function`.
PR-URL: https://github.com/nodejs/node/pull/34252
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Zeyu Yang <himself65@outlook.com >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-07-14 15:04:43 +02:00
Anna Henningsen
460c81dc0e
async_hooks: improve resource stack performance
...
Removes some of the performance overhead that came with
`executionAsyncResource()` by using the JS resource array
only as a cache for the values provided by C++. The fact that we now
use an entry trampoline is used to pass the resource without
requiring extra C++/JS boundary crossings, and the direct accesses
to the JS resource array from C++ are removed in all fast paths.
This particularly improves performance when async hooks are not
being used.
This is a continuation of https://github.com/nodejs/node/pull/33575
and shares some of its code with it.
./node benchmark/compare.js --new ./node --old ./node-master --runs 30 --filter messageport worker | Rscript benchmark/compare.R
[00:06:14|% 100| 1/1 files | 60/60 runs | 2/2 configs]: Done
confidence improvement accuracy (*) (**) (***)
worker/messageport.js n=1000000 payload='object' ** 12.64 % ±7.30% ±9.72% ±12.65%
worker/messageport.js n=1000000 payload='string' * 11.08 % ±9.00% ±11.98% ±15.59%
./node benchmark/compare.js --new ./node --old ./node-master --runs 20 --filter async-resource-vs-destroy async_hooks | Rscript benchmark/compare.R
[00:22:35|% 100| 1/1 files | 40/40 runs | 6/6 configs]: Done
confidence improvement accuracy (*)
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='async-local-storage' benchmarker='autocannon' 1.60 % ±7.35%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='async-resource' benchmarker='autocannon' 6.05 % ±6.57%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='destroy' benchmarker='autocannon' * 8.27 % ±7.50%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='async-local-storage' benchmarker='autocannon' 7.42 % ±8.22%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='async-resource' benchmarker='autocannon' 4.33 % ±7.84%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='destroy' benchmarker='autocannon' 5.96 % ±7.15%
(**) (***)
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='async-local-storage' benchmarker='autocannon' ±9.84% ±12.94%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='async-resource' benchmarker='autocannon' ±8.81% ±11.60%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='async' type='destroy' benchmarker='autocannon' ±10.07% ±13.28%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='async-local-storage' benchmarker='autocannon' ±11.01% ±14.48%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='async-resource' benchmarker='autocannon' ±10.50% ±13.81%
async_hooks/async-resource-vs-destroy.js n=1000000 duration=5 connections=500 path='/' asyncMethod='callbacks' type='destroy' benchmarker='autocannon' ±9.58% ±12.62%
Refs: https://github.com/nodejs/node/pull/33575
PR-URL: https://github.com/nodejs/node/pull/34319
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Gerhard Stöbich <deb2001-github@yahoo.de >
Reviewed-By: Stephen Belanger <admin@stephenbelanger.com >
2020-07-14 13:14:27 +02:00
Michaël Zasso
b7cf823410
src: update NODE_MODULE_VERSION to 86
...
Major V8 updates are usually API/ABI incompatible with previous
versions. This commit adapts NODE_MODULE_VERSION for V8 8.4.
Refs: https://github.com/nodejs/CTC/blob/master/meetings/2016-09-28.md
PR-URL: https://github.com/nodejs/node/pull/33579
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Michael Dawson <michael_dawson@ca.ibm.com >
Reviewed-By: Rich Trott <rtrott@gmail.com >
Reviewed-By: Shelley Vohr <codebytere@gmail.com >
2020-07-13 14:41:50 +02:00
Daniel Bevenius
eabe22b733
src: use FromMaybe instead of ToLocal in GetCert
...
PR-URL: https://github.com/nodejs/node/pull/34276
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: James M Snell <jasnell@gmail.com >
2020-07-13 08:08:09 +02:00
Daniel Bevenius
f9402b23fd
src: add GetCipherValue function
...
This commit extracts the code that is the same in GetCipherName,
GetCipherStandardName, and GetCipherVersion into function named
GetCipherValue.
The motivation for this change is to improve readabilty by removing the
duplicated code.
PR-URL: https://github.com/nodejs/node/pull/34287
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: James M Snell <jasnell@gmail.com >
2020-07-13 05:51:56 +02:00
James M Snell
c176d5fac2
quic: set destroyed at timestamps for duration calculation
...
PR-URL: https://github.com/nodejs/node/pull/34262
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-10 13:51:18 -07:00
Guy Bedford
1237955d41
module: package "imports" field
...
PR-URL: https://github.com/nodejs/node/pull/34117
Reviewed-By: Jan Krems <jan.krems@gmail.com >
Reviewed-By: Bradley Farias <bradley.meck@gmail.com >
2020-07-09 19:19:35 -07:00
James M Snell
26493c02a2
quic: remove no longer valid CHECK
...
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:15:44 -07:00
James M Snell
fe11f6bf7c
quic: cleanup QuicSocketFlags, used shared state struct
...
Some of the flags were no longer being used.
Switched to use an AliasedStruct for shared state to avoid
extraneous expensive JS=>C++ calls.
Removed unused QuicSocket option
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:15:43 -07:00
James M Snell
d08e99de24
quic: use getter/setter for stateless reset toggle
...
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:15:43 -07:00
Anna Henningsen
f2753c7695
quic: unref timers again
...
0f97d6066a accidentally removed this.
Refs: https://github.com/nodejs/node/pull/34186
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: James M Snell <jasnell@gmail.com >
2020-07-09 07:15:27 -07:00
James M Snell
c535131627
quic: additional minor cleanups in node_quic_session.h
...
PR-URL: https://github.com/nodejs/node/pull/34247
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-09 07:14:00 -07:00
Anna Henningsen and Ulan Degenbaev
6bc871f470
src: exit explicitly after printing V8 help
...
V8 will not exit the process after handling --help anymore:
https://chromium-review.googlesource.com/c/v8/v8/+/2276276
As a drive-by fix, correctly return in the `print_bash_completion`
case as well.
Refs: https://github.com/nodejs/node/pull/34135
Co-authored-by: Ulan Degenbaev <ulan@chromium.org >
PR-URL: https://github.com/nodejs/node/pull/34136
Reviewed-By: Shelley Vohr <codebytere@gmail.com >
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com >
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com >
Reviewed-By: Michaël Zasso <targos@protonmail.com >
2020-07-07 23:41:20 +02:00
Daniel Bevenius
30612316e4
src: add encoding_type variable in WritePrivateKey
...
This commit adds a local variable named encoding_type which is set to
the value of the Maybe using ToChecked().
The motivation for this is the code for ToChecked() could be executed
multiple times depending on path taken at runtime. I also think this
improves readability, or at least it is as readable as before this
change.
PR-URL: https://github.com/nodejs/node/pull/34181
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-07-07 06:10:12 +02:00
Daniel Bevenius
67ba825037
src: fix minor comment typo in KeyObjectData
...
PR-URL: https://github.com/nodejs/node/pull/34167
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-07-06 06:39:26 +02:00
Nikola Glavina
82c435d0a0
src: fix unused namespace member
...
C++ linter fails because of unused ArrayBuffer namespace member
PR-URL: https://github.com/nodejs/node/pull/34212
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Jiawen Geng <technicalcute@gmail.com >
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com >
2020-07-06 07:56:00 +05:30
James M Snell
0f97d6066a
quic: use TimerWrap for idle and retransmit timers
...
Signed-off-by: James M Snell <jasnell@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/34186
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2020-07-05 14:57:07 -07:00
James M Snell
e19a251824
src: replace InspectorTimer with TimerWrap utility
...
Signed-off-by: James M Snell <jasnell@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/34186
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2020-07-05 14:57:03 -07:00
James M Snell
d4f69002b4
src: add TimerWrap utility
...
Consolidate uv_timer_t boilerplate code into a shared utility.
There are several places throughout the code where we use uv_timer_t
internally (inspector, perf, quic), with some code duplication.
This eliminates the duplicated code, ensures that cleanup occurs
correctly, and simplifies use of the timers.
Signed-off-by: James M Snell <jasnell@gmail.com >
PR-URL: https://github.com/nodejs/node/pull/34186
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: Matteo Collina <matteo.collina@gmail.com >
2020-07-05 14:56:59 -07:00
James M Snell
1b1e985478
quic: add missing memory tracker fields
...
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:42 -07:00
James M Snell
5a87e9b0a5
quic: cleanup timers if they haven't been already
...
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:39 -07:00
James M Snell
3837d9cf1f
quic: fixup lint issues
...
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:36 -07:00
James M Snell
7b062ca015
quic: refactor qlog handling
...
Because of the timing of qlog events emitted by ngtcp2, it
becomes difficult to handle those as events on the QuicSession
object because the final qlog entry is not emitted until the
ngtcp2_conn is freed, which can occur when the object is being
garbage collected (meaning, we a: can't call out to javascript
and b: don't have an object we can use to emit the event).
This refactors it into a QLogStream object that allows the
qlog data to be piped out using a separate Readable stream.
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:33 -07:00
James M Snell
e4d369e96e
quic: remove onSessionDestroy callback
...
The QuicSession can be destroyed during garbage collection and
the onSessionDestroy callback was happening in the destructor.
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:29 -07:00
James M Snell
3acdd6aac7
quic: refactor QuicSession shared state to use AliasedStruct
...
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:26 -07:00
James M Snell
f9c2245fb5
quic: refactor QuicSession close/destroy flow
...
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:24 -07:00
James M Snell
f7510ca439
quic: additional cleanups on the c++ side
...
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:21 -07:00
James M Snell
b5bf5bb20f
quic: refactor native object flags for better readability
...
Use is_* and set_* pattern for native object flags to improve
readability in the code.
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:18 -07:00
James M Snell
b1750a4d53
quic: continued refactoring for quic_stream/quic_session
...
PR-URL: https://github.com/nodejs/node/pull/34160
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-07-05 14:17:15 -07:00
Anna Henningsen
ee3243fe3f
src: remove unused fields from IsolateData
...
PR-URL: https://github.com/nodejs/node/pull/34139
Reviewed-By: Shelley Vohr <codebytere@gmail.com >
Reviewed-By: David Carlier <devnexen@gmail.com >
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com >
Reviewed-By: Zeyu Yang <himself65@outlook.com >
Reviewed-By: Gus Caplan <me@gus.host >
Reviewed-By: James M Snell <jasnell@gmail.com >
2020-07-03 12:21:02 -07:00
Anna Henningsen
1d7be3253f
crypto: move typechecking for timingSafeEqual into C++
...
This makes the function more robust against V8 inlining.
Fixes: https://github.com/nodejs/node/issues/34073
PR-URL: https://github.com/nodejs/node/pull/34141
Reviewed-By: Richard Lau <riclau@uk.ibm.com >
Reviewed-By: Ujjwal Sharma <ryzokuken@disroot.org >
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
Reviewed-By: Rich Trott <rtrott@gmail.com >
Reviewed-By: Zeyu Yang <himself65@outlook.com >
2020-07-03 12:01:03 -07:00
James M Snell
2afc1abd05
quic: fixup constant exports, export all protocol error codes
...
PR-URL: https://github.com/nodejs/node/pull/34137
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-06-30 17:50:54 -07:00
James M Snell
b1fab88ff0
quic: remove unused callback function
...
PR-URL: https://github.com/nodejs/node/pull/34137
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-06-30 17:50:52 -07:00
James M Snell
3bae2d5073
quic: consolidate onSessionClose and onSessionSilentClose
...
Use a single callback function for both
PR-URL: https://github.com/nodejs/node/pull/34137
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-06-30 17:50:50 -07:00
James M Snell
def8e76999
quic: fixup set_final_size
...
Ignore subsequent calls to set_final_size unless the new size
is more than the previous, in which case, we have us a bug.
PR-URL: https://github.com/nodejs/node/pull/34137
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-06-30 17:50:47 -07:00
James M Snell
d6034186d6
quic: cleanups for QuicSocket
...
PR-URL: https://github.com/nodejs/node/pull/34137
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-06-30 17:50:45 -07:00
James M Snell
73a51bb9dc
quic: cleanups in JS API
...
PR-URL: https://github.com/nodejs/node/pull/34137
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-06-30 17:50:42 -07:00
James M Snell
204f20f2d1
quic: minor cleanups in quic_buffer
...
PR-URL: https://github.com/nodejs/node/pull/34087
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-06-30 12:52:50 -07:00
gengjiawen
68634d2592
quic: remove redundant cast
...
PR-URL: https://github.com/nodejs/node/pull/34086
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: David Carlier <devnexen@gmail.com >
2020-06-30 10:22:50 -07:00
Shelley Vohr
c23d2fd3f8
src: allow embedders to disable esm loader
...
PR-URL: https://github.com/nodejs/node/pull/34060
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: David Carlier <devnexen@gmail.com >
Reviewed-By: Gus Caplan <me@gus.host >
2020-06-29 09:12:11 -07:00
Gus Caplan
b327d335ff
n-api: add version to wasm registration
...
PR-URL: https://github.com/nodejs/node/pull/34045
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Gabriel Schulhof <gabriel.schulhof@intel.com >
Reviewed-By: Tobias Nießen <tniessen@tnie.de >
2020-06-28 10:51:31 -05:00
Anna Henningsen
f63436d190
vm: add run-after-evaluate microtask mode
...
This allows timeouts to apply to e.g. `Promise`s and `async function`s
from code running inside of `vm.Context`s, by giving the Context its
own microtasks queue.
Fixes: https://github.com/nodejs/node/issues/3020
PR-URL: https://github.com/nodejs/node/pull/34023
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Denys Otrishko <shishugi@gmail.com >
2020-06-26 11:41:33 -07:00
himself65
870f0fc5e8
src: add errorProperties on process.report
...
PR-URL: https://github.com/nodejs/node/pull/28426
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Rich Trott <rtrott@gmail.com >
2020-06-26 10:06:22 -07:00
Ben Noordhuis
40bc3095ab
lib,src: remove cpu profiler idle notifier
...
I added it in commit 57231d5286 ("src: notify V8 profiler when we're
idle") from October 2013 as a stop-gap measure to measure CPU time
rather than wall clock time, otherwise processes that spend a lot
of time sleeping in system calls give a false impression of being
very busy.
That fix is not without drawbacks because the idle flag is set before
libuv makes I/O callbacks and cleared again after. I/O callbacks can
result into calls into JS code and executing JS code is as non-idle
as you can get.
In commit 96ffcb9a21 ("src: reduce cpu profiler overhead") from January
2015, I made Node.js block off the SIGPROF signal that V8's CPU profiler
uses before Node.js goes to sleep. The goal of that commit is to reduce
the overhead from EINTR system call wakeups but it also has the pleasant
side effect of fixing what the idle notifier tried to fix.
This commit removes the idle notifier and turns the JS process object
methods into no-ops.
Fixes: https://github.com/nodejs/node/issues/19009
Refs: https://github.com/nodejs/node/pull/33138
PR-URL: https://github.com/nodejs/node/pull/34010
Reviewed-By: James M Snell <jasnell@gmail.com >
Reviewed-By: Anna Henningsen <anna@addaleax.net >
2020-06-25 11:52:53 -07:00