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

darwin: add missing mutex lock/unlock for claimed_interfaces#1695

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
seanm wants to merge1 commit intolibusb:master
base:master
Choose a base branch
Loading
fromseanm:ep_to_pipeRef-mutex

Conversation

@seanm
Copy link
Contributor

Existing code comments say that
libusb_device_handle.claimed_interfaces is protected by libusb_device_handle.lock. The function ep_to_pipeRef() accesses claimed_interfaces but does not hold the lock.

I examined all 9 callers:

  • darwin_alloc_streams
  • darwin_clear_halt
  • darwin_free_streams
  • darwin_abort_transfers
  • submit_bulk_transfer
  • submit_control_transfer
  • submit_iso_transfer
  • submit_stream_transfer
  • darwin_async_io_callback

and none seem to hold the lock already.

Found with -Wthread-safety.

jeanthom reacted with thumbs up emoji
Existing code comments say thatlibusb_device_handle.claimed_interfaces is protected by libusb_device_handle.lock.  The function ep_to_pipeRef() accesses claimed_interfaces but does not hold the lock.I examined all 9 callers:- darwin_alloc_streams- darwin_clear_halt- darwin_free_streams- darwin_abort_transfers- submit_bulk_transfer- submit_control_transfer- submit_iso_transfer- submit_stream_transfer- darwin_async_io_callbackand none seem to hold the lock already.Found with -Wthread-safety.
@mcueemcuee added the macOS labelSep 6, 2025
@seanm
Copy link
ContributorAuthor

@hjelmn does this look right to you?

@seanm
Copy link
ContributorAuthor

@osy could you take a look at this?

@osy
Copy link
Contributor

osy commentedSep 19, 2025

This is a fix for a read race on claimed_interface (not write race) right? It looks fine to me but just a heads up, when I looked at the Darwin backend, I found a lot of read races and just reasoned that all of them would result in eventual errors that is similar to if the device was just hot unplugged.

@seanm
Copy link
ContributorAuthor

@osy Yes reading. This change is as a result of a -Wthread-safety compiler warning. According to existing comments:

/* lock protects claimed_interfaces */usbi_mutex_t lock;unsigned long claimed_interfaces;

claimed_interfaces should be protected bylock.

Sign up for freeto join this conversation on GitHub. Already have an account?Sign in to comment

Reviewers

No reviews

Assignees

No one assigned

Labels

Projects

None yet

Milestone

No milestone

Development

Successfully merging this pull request may close these issues.

3 participants

@seanm@osy@mcuee

[8]ページ先頭

©2009-2025 Movatter.jp