io: mandate stdio operations#7178
Open
maminrayej wants to merge 3 commits intotokio-rs:masterfrom
Open
Conversation
Darksonn
reviewed
Feb 26, 2025
| enum State<T> { | ||
| Idle(Option<Buf>), | ||
| Busy(sys::Blocking<(io::Result<usize>, Buf, T)>), | ||
| Shutdown, |
Member
Author
There was a problem hiding this comment.
At first, I changed the Busy state to:
Busy(Option<sys::Blocking<(io::Result<usize>, Buf, T)>>)since spawn_mandatory_blocking optionally returns a JoinHandle. But now Busy is representing two states:
Busy(Some(jh)): the task has been registered and will be picked up by one of the threadsBusy(None): the runtime is shutting down
I think it makes sense to only useBusyfor the first one and introduce theShutdownstate to represent the second one.
Member
There was a problem hiding this comment.
I guess under the current implementation, the spawn_blocking call panics and then you end up in the Idle(None) state.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Previously stdio operations were not mandatory to run, so these operations could be shutdown even if they were scheduled before runtime shutdown. This PR replaces the use of
spawn_blockingwithspawn_mandatory_blockingin order to mandate the execution of stdio operations.Resolves #7174.