-
Notifications
You must be signed in to change notification settings - Fork 29.6k
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 and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
domain: allow concurrent user-land impl #33013
Conversation
A chunk of code that was deleted in the original pull request is restored here so that test/parallel/test-domain-emit-error-handler-stack.js will pass. Is that the right approach, or is the thing to do to delete/update the test as its behavior should change? |
Remaining to be done:
|
This produces some significant performance regressions:
Can we find a way to avoid these first? |
I’m surprised that the impact is that large, but yes, we should definitely address that first… |
8ae28ff
to
2935f72
Compare
e3a3916
to
9fb161c
Compare
@mscdex Can you re-run the benchmark CI so I can see what parameters you use / it uses? I'm running locally and getting very different results, which may be correct--different platforms/environments having different benchmarks--but it seems striking.
I also ran this after rebasing against master so it's possible something else changed that caused this to have less impact. |
CI results look about the same as before for this PR:
|
9fb161c
to
134cbe1
Compare
f2ae64b
to
6cc7faa
Compare
FWIW there are still some significant regressions:
|
6cc7faa
to
a45ef63
Compare
Whoops, @mscdex's results were from a benchmark CI run and not a local run, so my benchmark CI run was superfluous. Oh well, here are the results anyway:
|
Currently, only one domain-lke implementation (the core domain one) can be used to handle uncaught exceptions or unhandled error events. This PR aims at making it possible for different domain-like user-land implementations to be used concurrently (including with the core domain impl) so that the state of the core domain module (doc deprecated) does not prevent users of domains from having a well-maintained domain-like facility. Ref: nodejs#23348 Co-authored-by: Rich Trott <[email protected]>
a45ef63
to
110983c
Compare
8e77095
to
f992e36
Compare
I'm not seeing any obvious way to improve performance and this isn't something I'm inclined to seek out non-obvious ways to do it. So I'm inclined to close. @mscdex Do you see anything obvious that might be worth trying to refactor into a more performant shape? |
Picking up #26326
Checklist
make -j4 test
(UNIX), orvcbuild test
(Windows) passes