tree 483d0e6264c8c541f22fb2c6eca8d8805144716f
parent 4c5b96b376aa778cbe651362c29a26e0d4c32ccd
author Anna Henningsen <anna@addaleax.net> 1659728768 +0200
committer GitHub <noreply@github.com> 1659728768 +0000
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJi7XOACRBK7hj4Ov3rIwAAe38IAGxnF/Y7BAYf00QlevcuXtB7
 xQ/LqC6hyuaECT9qoY0fyNp1q1z381QOmyaF16TvLV/jQOd9EG1UDe8FdIoZFxTy
 k6tPv6rCMAeOUunPLnbRBHyc8dU87AlRi/DZZSvkn4zE6uUbby2hx14jFTqKxNYn
 hpByrktLzgMWMy/39O6nBcMqzgUfJl7xILePZ+MKOPOxWyU885gm7vlgRrDt61hH
 C0NkKT659B7aCpW3qU34Jo38mtZn7dYGCn3V2hvN15WG2qNbqSz8zVwvfrj1lFdu
 HPmqYhYjtOvbtDFQropHQbSBsUiN+JCUd93DIMl5WmlD87fYVJyuGi28UmFK8y8=
 =AcWe
 -----END PGP SIGNATURE-----
 

src: add detailed embedder process initialization API

So far, process initialization has been a bit all over the place
in Node.js. `InitializeNodeWithArgs()` is our main public API
for this, but inclusion of items in it vs. `InitializeOncePerProcess()`
and `PlatformInit()` has been random at best. Likewise,
some pieces of initialization have been guarded by
`NODE_SHARED_MODE`, but also fairly randomly and without
any meaningful connection to shared library usage.

This leaves embedders in a position to cherry-pick some of
the initialization code into their own code to make their
application behave like typical Node.js applications to the
degree to which they desire it.

Electron takes an alternative route and makes direct use of
`InitializeOncePerProcess()` already while it is a private
API, with a `TODO` to add it to the public API in Node.js.

This commit addresses that `TODO`, and `TODO`s around the
`NODE_SHARED_MODE` usage. Specifically:

- `InitializeOncePerProcess()` and `TearDownOncePerProcess()`
  are added to the public API.
- The `flags` option of these functions are merged with the
  `flags` option for `InitializeNodeWithArgs()`, since they
  essentially share the same semantics.
- The return value of the function is made an abstract class,
  rather than a struct, for easier API/ABI stability.
- Initialization code from `main()` is brought into these
  functions (since that makes sense in general).
- Add a `TODO` for turning `InitializeNodeWithArgs()` into
  a small wrapper around `InitializeOncePerProcess()` and
  eventually removing it (at least one major release cycle
  each, presumably).
- Remove `NODE_SHARED_MODE` guards and replace them with
  runtime options.

PR-URL: https://github.com/nodejs/node/pull/44121
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Michael Dawson <midawson@redhat.com>