Skip to content
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

Drop all use of OSSpinLock #1060

Merged
merged 1 commit into from Dec 17, 2015
Merged

Conversation

@thomasvl
Copy link
Contributor

thomasvl commented Dec 17, 2015

Apple engineers have pointed out that OSSpinLocks are vulnerable to live locking
on iOS in cases of priority inversion:
. http://mjtsai.com/blog/2015/12/16/osspinlock-is-unsafe/
. https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000372.html

  • Use a dispatch_semaphore_t within the extension registry.
  • Use a dispatch_semaphore_t for protecting autocreation within messages.
  • Drop the custom/internal GPBString class since we don't have really good
    numbers to judge the locking replacements and it isn't required. We can
    always bring it back with real data in the future.
Apple engineers have pointed out that OSSpinLocks are vulnerable to live locking
on iOS in cases of priority inversion:
. http://mjtsai.com/blog/2015/12/16/osspinlock-is-unsafe/
. https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000372.html

- Use a dispatch_semaphore_t within the extension registry.
- Use a dispatch_semaphore_t for protecting autocreation within messages.
- Drop the custom/internal GPBString class since we don't have really good
  numbers to judge the locking replacements and it isn't required. We can
  always bring it back with real data in the future.
@googlebot googlebot added the cla: yes label Dec 17, 2015
thomasvl added a commit that referenced this pull request Dec 17, 2015
Drop all use of OSSpinLock
@thomasvl thomasvl merged commit 6b228f3 into protocolbuffers:master Dec 17, 2015
1 of 3 checks passed
1 of 3 checks passed
continuous-integration/appveyor/pr Waiting for AppVeyor build to complete
Details
continuous-integration/travis-ci/pr The Travis CI build is in progress
Details
cla/google All necessary CLAs are signed
@thomasvl thomasvl deleted the thomasvl:drop_spinlocks branch Dec 17, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants
You can’t perform that action at this time.