Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

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:master
base:master
Choose a base branch
Loading
fromtsoome:libzfs

Conversation

@tsoome
Copy link
Contributor

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

  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Performance enhancement (non-breaking change which improves efficiency)
  • [ x] Code cleanup (non-breaking change which makes code smaller or more readable)
  • [ x] Quality assurance (non-breaking change which makes the code more robust against bugs)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Library ABI change (libzfs, libzfs_core, libnvpair, libuutil and libzfsbootenv)
  • Documentation (a change to man pages or other documentation)

Checklist:

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>
Copy link
Contributor

@behlendorfbehlendorf left a 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.

@behlendorfbehlendorf added the Status: Code Review NeededReady for review and testing labelNov 5, 2025
Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

@behlendorfbehlendorfbehlendorf approved these changes

Assignees

No one assigned

Labels

Status: Code Review NeededReady for review and testing

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

2 participants

@tsoome@behlendorf

[8]ページ先頭

©2009-2025 Movatter.jp