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

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.
thomasvl added a commit that referenced this pull request Dec 17, 2015
@thomasvl thomasvl merged commit 6b228f3 into protocolbuffers:master Dec 17, 2015
@thomasvl thomasvl deleted the drop_spinlocks branch December 17, 2015 21:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants