-
-
Notifications
You must be signed in to change notification settings - Fork 14.3k
minimal dirfd implementation (1/4) #146341
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
Conversation
c3278f6 to
6982a46
Compare
This comment has been minimized.
This comment has been minimized.
6982a46 to
313c731
Compare
This comment has been minimized.
This comment has been minimized.
313c731 to
1b3d7d6
Compare
This comment has been minimized.
This comment has been minimized.
1b3d7d6 to
be0d761
Compare
|
@ChrisDenton I'll need your help for the Windows review |
be0d761 to
3083d58
Compare
|
@rustbot ready |
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.
Looks pretty good to me, just a few mechanical things here. There are a couple left over from the previous review, #146341 (comment), #146341 (comment), and (newly) #146341 (comment).
| let mut handle = ptr::null_mut(); | ||
| let mut io_status = c::IO_STATUS_BLOCK::PENDING; | ||
| let access = opts.get_access_mode()? | c::SYNCHRONIZE; | ||
| let options = create_options | c::FILE_SYNCHRONOUS_IO_NONALERT; |
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.
Could you add a note about why this flag is set?
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.
I no longer remember why I chose this one, and looking at it now, I'm not sure whether we should set this one, FILE_SYNCHRONOUS_IO_ALERT, or neither. Maybe @ChrisDenton has thoughts?
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.
Update, using neither causes an error, so I've added back FILE_SYNCHRONOUS_IO_NONALERT
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.
Yeah, passing this flag is equivalent to not passing FILE_FLAG_OVERLAPPED to CreateFile. So if you don't pass this flag, other APIs using the handle need to follow the usual overlapped rules, otherwise they may behave improperly.
|
From the top post:
I think it would be fine to include the
That is quite alright, there is no hurry :) For reference, the |
This comment was marked as outdated.
This comment was marked as outdated.
minimal dirfd implementation (1/4) try-job: aarch64-apple try-job: dist-various* try-job: test-various* try-job: x86_64-msvc* try-job: x86_64-mingw
This comment has been minimized.
This comment has been minimized.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
This comment was marked as outdated.
minimal dirfd implementation (1/4) try-job: aarch64-apple try-job: dist-various* try-job: test-various* try-job: x86_64-msvc* try-job: x86_64-mingw*
|
This PR was rebased onto a different main commit. Here's a range-diff highlighting what actually changed. Rebasing is a normal part of keeping PRs up to date, so no action is needed—this note is just to help reviewers. |
3ac2b51 to
f019942
Compare
This comment has been minimized.
This comment has been minimized.
f019942 to
6bc1fb2
Compare
|
@bors2 try jobs=dist-x86_64-netbsd |
minimal dirfd implementation (1/4) try-job: dist-x86_64-netbsd
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
6bc1fb2 to
d236b8a
Compare
|
@bors r+ rollup=iffy |
|
☀️ Test successful - checks-actions |
What is this?This is an experimental post-merge analysis report that shows differences in test outcomes between the merged PR and its parent PR.Comparing f280e76 (parent) -> f8b1d59 (this PR) Test differencesShow 303 test diffsStage 1
Stage 2
Additionally, 299 doctest diffs were found. These are ignored, as they are noisy. Job group index
Test dashboardRun cargo run --manifest-path src/ci/citool/Cargo.toml -- \
test-dashboard f8b1d59a81c700cb7aa25cf69e3032b3ce333150 --output-dir test-dashboardAnd then open Job duration changes
How to interpret the job duration changes?Job durations can vary a lot, based on the actual runner instance |
|
Finished benchmarking commit (f8b1d59): comparison URL. Overall result: ❌✅ regressions and improvements - no action needed@rustbot label: -perf-regression Instruction countOur most reliable metric. Used to determine the overall result above. However, even this metric can be noisy.
Max RSS (memory usage)Results (primary 0.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
CyclesResults (secondary 0.3%)A less reliable metric. May be of interest, but not used to determine the overall result above.
Binary sizeThis benchmark run did not return any relevant results for this metric. Bootstrap: 474.288s -> 475.255s (0.20%) |
PR rust-lang#146341 introduced a compilation error. This fixes it.
Motor OS: fix compile error PR rust-lang#146341 introduced a compilation error. This fixes it.
This is the first of four smaller PRs that will eventually be equivalent to #139514.
A few notes:
newtoopenbecauseopen_dirtakes&selfand opens a subdirectory.opentoopen_file.impl AsRawFdand friends because thecommonimplementation usesPathBufs. How should I proceed here?The other PRs will be based on this one, so I'll make drafts and mark them ready as their predecessors get merged. They might take a bit though; I've never done this particular thing with git before.
Tracking issue: #120426
r? @tgross35
try-job: aarch64-apple
try-job: dist-various*
try-job: test-various*
try-job: x86_64-msvc-1
try-job: x86_64-mingw*