-
-
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
Use File(RawFD(fd)) in preference to fdio(fd). #15091
base: master
Are you sure you want to change the base?
Conversation
bump? |
(Use LibUV in preference to ios.c).
rebased |
sorry for the slow response. the historic concern with making this change has been that |
Hi @vtjnash. Note that the change in this PR only effects With regard to read and write buffering. What do you think about separating out the buffering in the style of BufferedInputStream and BufferedOutputStream ? i.e. Make all the low-level IO implementations un-buffered, and wrap them with a generic buffering layer when buffering is desired. I think it makes sense for high level user functions like |
I'm open to being convinced otherwise, but I'm not a huge fan of this style, simply because of the verbosity. And as you pointed out, usually the user wants the buffered object anyways. Buffering a stream vs. a file is also potentially a slightly different operation. The design so far has been to use PipeBuffer internally as the optional nullable buffer, recognizing that buffering is generally an inherent property of using a file efficiently in most cases (while also limiting to a single type of buffer, unlike the layered approach). But I don't think anyone has put serious effort into trying to design the tradeoffs of that approach for File, so it would be nice to see an investigation of the usage and performance of the various options. |
That sounds fair enough. I think the verbosity issue and the implementaiton layering are seperate issues. but there is no doubt that there are cases where "Buffering a stream vs. a file is also potentially a slightly different operation." etc. |
Use LibUV in preference to ios.c (following on from https://github.com/JuliaLang/julia/pull/9450/files#diff-ac5d350530574f3f82c860d1b963bc0aR240 ).
Includes @vtjnash's fix for #15088 taken from #15090.
Includes
cmdlineargs.jl
pipe deadlock fix per 31a0c55#commitcomment-16106258