-
-
Notifications
You must be signed in to change notification settings - Fork 5.5k
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
fix #29885, make grisu digit buffer task-local #29907
Conversation
@async print(q, 9.8) | ||
read(p, 2^18) | ||
@test read(p, String) == "12.345" | ||
end |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
wrap in @sync
(so we'll collect any errors)
f07d01e
to
0a427a3
Compare
I think we need to do the same thing for |
Do task-blocking operations happen while BIGNUMS is still in use? |
What operations are task-blocking? |
I/O, sleep, calls to |
Will add news separately. |
I thought task-local storage might be too slow for this, but fortunately the slowdown is only about 5-6%. I also tried per-thread pools but it wasn't faster. Hopefully TLS access can be sped up a bit too.
Note: I kept the existing global
DIGITS
in place since I believe some packages use it.fix #29885