RJS-2854: Adding a ThreadSafeFunction-based scheduler for Core on Node.js
#6800
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What, How & Why?
This closes #6772 by implementing a
utils::Schedulerbased on theNapi::ThreadSafeFunctionprimitive.Note: In order for the uncaught exceptions thrown by the Node.js addon, the node process must be started with a
--force-node-api-uncaught-exceptions-policyflag enabled. This was added under a flag to "not breaking existing running Node-API add-ons.".https://github.com/nodejs/node/blob/cd39578e53d6502de03f15620d15835b86954ac8/src/node_api.cc#L85-L115
Alternatively the following warning will be logged:
☑️ ToDos
EventLoopDispatcher,schedulerWrapBlockingFunctionand throughRealmConfigrealm-core#7903 merge and gets released.enforceUncaughtExceptionPolicytemplate parameter to avoid the warning when throwing uncaught exceptions.Compatibilitylabel is updated or copied from previous entryCOMPATIBILITY.mdpackage.jsons (if updating internal packages)Breakinglabel has been applied or is not necessary@realm/devdocsif documentation changes are needed