[15766] Update shared_mutex thirdparty to don't prioritize writers
Description
The C++ standard requirements for shared_mutex do not specify if exclusive lock operation should preempt the shared lock one. Posix allows both behaviors but defaults to not preempting shared locks. STL implementations are split on this subject:
- Windows, boost -> preemption (
PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP) - Linux, Mac -> not preemption (
PTHREAD_RWLOCK_PREFER_READER_NP)
In order to prevent deadlock scenarios:
- out third party implementation avoids preemption.
- if the framework's defaults to preemption the third party is forced.
- code checks used to avoid deadlock on the preemption scenario have been removed.
Documentation: https://github.com/eProsima/Fast-DDS-docs/pull/413
Contributor Checklist
- [x] Commit messages follow the project guidelines.
- [x] The code follows the style guidelines of this project.
- [x] Tests that thoroughly check the new feature have been added/Regression tests checking the bug and its fix have been added.
- [x] Any new/modified methods have been properly documented using Doxygen.
- [x] Fast DDS test suite has been run locally.
- [x] Changes are ABI compatible.
- [x] Changes are API compatible.
- [x] Documentation builds and tests pass locally.
- [] NA New feature has been added to the
versions.mdfile (if applicable). - [x] New feature has been documented/Current behavior is correctly described in the documentation.
Reviewer Checklist
- [ ] Check contributor checklist is correct.
- [ ] Check CI results: changes do not issue any warning.
- [ ] Check CI results: failing tests are unrelated with the changes.
@richiprosima Please test this for me 🤯
@richiprosima Please test this for me 🤯
@richiprosima please test this
@richiprosima Please I have to rebase in order to fix docs ci, test this again 😅
@richiprosima Please I have to rebase in order to fix docs ci, test this again 😅
@richiprosima please test this
Is there any progress?
@richiprosima Please test this
Some of the checked checklist steps look incorrect:
- [ ] The code follows the style guidelines of this project.
- [ ] Any new/modified methods have been properly documented using Doxygen.
- [ ] Tests that thoroughly check the new feature have been added/Regression tests checking the bug and its fix have been added.
- [ ] New feature has been documented/Current behavior is correctly described in the documentation.
@richiprosima Please test this for me

@richiprosima Please test this for me 🤯
@richiprosima Please test this for me
@richiprosima Please test this for me
@richiprosima Please test this for me
@richiprosima Please test this for me
@richiprosima Please test this for me
@richiprosima Please test this for me
@richiprosima Please test this for me
@mergifyio backport 2.7.x 2.6.x
backport 2.7.x 2.6.x
✅ Backports have been created
-
#3090 [15766] Update shared_mutex thirdparty to don't prioritize writers (backport #2976) has been created for branch
2.7.x -
#3091 [15766] Update shared_mutex thirdparty to don't prioritize writers (backport #2976) has been created for branch
2.6.x