- Notifications
You must be signed in to change notification settings - Fork1.9k
libzfs: ignoring unreachable code#17900
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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.
Already on GitHub?Sign in to your account
Open
tsoome wants to merge1 commit intoopenzfs:masterChoose a base branch fromtsoome:libzfs
base:master
Could not load branches
Branch not found:{{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline, and old review comments may become outdated.
Open
+3 −2
Conversation
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
We have infinite loop and on certain condition, we exit this loopand thread with pthread_exit(). But also after this loop,we have a code to perform pthread_cleanup_pop() and return from thethread.The problem is that modern compilers are able to recognize that weactually never get to the statements after loop and thereforeit is dead code there.I think, instead of pthread_exit(), it is better to break out of loopand let the last statements to work as intended. This is becausewe do need to keep pthread_cleanup_pop() anyhow. Of course,it is matter of taste if we want to use return or pthread_exit as verylast statement in this function.Signed-off-by: Toomas Soome <tsoome@me.com>
behlendorf approved these changesNov 5, 2025
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.
Yup, I agree that's a bit cleaner.
Sign up for freeto 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.
We have infinite loop and on certain condition, we exit this loop and thread with pthread_exit(). But also after this loop, we have a code to perform pthread_cleanup_pop() and return from the thread.
The problem is that modern compilers are able to recognize that we actually never get to the statements after loop and therefore it is dead code there.
I think, instead of pthread_exit(), it is better to break out of loop and let the last statements to work as intended. This is because we do need to keep pthread_cleanup_pop() anyhow. Of course, it is matter of taste if we want to use return or pthread_exit as very last statement in this function.
Note, since pthread_exit() will call the registered functions by pthread_cleanup_push(), we do not change any of the semantics there.
Motivation and Context
clear warning about unreachable code and, I think, it is good to have a bit more readable code.
Description
How Has This Been Tested?
Types of changes
Checklist:
Signed-off-by.