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

[15766] Update shared_mutex thirdparty to don't prioritize writers (backport #2976) #3091

Merged
merged 3 commits into from
Dec 1, 2022

Conversation

mergify[bot]
Copy link
Contributor

@mergify mergify bot commented Nov 14, 2022

This is an automatic backport of pull request #2976 done by Mergify.
Cherry-pick of 47d85d3 has failed:

On branch mergify/bp/2.6.x/pr-2976
Your branch is up to date with 'origin/2.6.x'.

You are currently cherry-picking commit 47d85d31c.
  (fix conflicts and run "git cherry-pick --continue")
  (use "git cherry-pick --skip" to skip this patch)
  (use "git cherry-pick --abort" to cancel the cherry-pick operation)

Changes to be committed:
	modified:   cmake/common/gtest.cmake
	new file:   cmake/modules/check_shared_mutex_priority.cpp
	modified:   include/fastrtps/utils/ProxyPool.hpp
	modified:   src/cpp/CMakeLists.txt
	modified:   src/cpp/rtps/history/TopicPayloadPool.cpp
	modified:   src/cpp/rtps/participant/RTPSParticipantImpl.cpp
	modified:   src/cpp/rtps/participant/RTPSParticipantImpl.h
	modified:   test/blackbox/common/DDSBlackboxTestsBasic.cpp
	new file:   test/unittest/utils/shared_mutex_tests.cpp

Unmerged paths:
  (use "git add <file>..." to mark resolution)
	both modified:   include/fastrtps/utils/shared_mutex.hpp
	both modified:   test/unittest/utils/CMakeLists.txt

To fix up this pull request, you can check it out locally. See documentation: https://docs.github.com/en/github/collaborating-with-pull-requests/reviewing-changes-in-pull-requests/checking-out-pull-requests-locally


Mergify commands and options

More conditions and actions can be found in the documentation.

You can also trigger Mergify actions by commenting on this pull request:

  • @Mergifyio refresh will re-evaluate the rules
  • @Mergifyio rebase will rebase this PR on its base branch
  • @Mergifyio update will merge the base branch into this PR
  • @Mergifyio backport <destination> will backport this PR on <destination> branch

Additionally, on Mergify dashboard you can:

  • look at your merge queues
  • generate the Mergify configuration with the config editor.

Finally, you can contact us on https://mergify.com

@mergify mergify bot added the conflicts Backport PR wich git cherry pick failed label Nov 14, 2022
@MiguelBarro
Copy link
Contributor

@richiprosima Please test this for me 🤯

* Add test for multithreaded creation of readers on a single subscriber.

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

* Add DataWriter.

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>

* Refs 15766: Refactor of shared_mutex to select writer priority

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766: CMake update to force third party shared mutex if the framework prioritizes writing.

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766: Add atomic support for some debian distros

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766: Allow recursiveness on participant endpoint collection mutexes. Now they always allow them.

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766: linter pass

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766: Generate the config.h file when the USE_THIRDPARTY_SHARED_MUTEX value is already specified.

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766: Mandatory piggyback: avoid polution on free_pools_ collection

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766: Add some missing members to shared_lock thirdparty

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766: linter

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766. shared_mutex testing

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766. fixing gtest backward compatibility issues

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766. Add a new test to check priority is right

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766. Fixing gcc build warnings

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766. Fixing clang build warnings

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766. Make thirdparty versions always available even if none is used as eprosima::shared_mutex.

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766. Addressing reviewers comments

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

* Refs 15766. Fixing sync issue on ProxyPool.

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>
Co-authored-by: Miguel Company <MiguelCompany@eprosima.com>
@MiguelBarro
Copy link
Contributor

@richiprosima Please test this for me 🤯

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>
@MiguelBarro
Copy link
Contributor

@richiprosima Please test this for me 🤯

@MiguelBarro MiguelBarro removed the conflicts Backport PR wich git cherry pick failed label Nov 16, 2022
…pected. Do we need a foreport?

Signed-off-by: Miguel Barro <miguelbarro@eprosima.com>
@MiguelBarro
Copy link
Contributor

@richiprosima Please test this for me 🤯

@EduPonz EduPonz added this to the v2.6.3 milestone Nov 30, 2022
@MiguelCompany
Copy link
Member

@richiprosima Please test this since there was another PR merged in the middle.

@MiguelCompany MiguelCompany added the ci-pending PR which CI is running label Nov 30, 2022
@MiguelCompany MiguelCompany merged commit f3b6fa8 into 2.6.x Dec 1, 2022
@MiguelCompany MiguelCompany deleted the mergify/bp/2.6.x/pr-2976 branch December 1, 2022 06:50
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci-pending PR which CI is running
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants