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

[19907] Enable configuration of thread setting for all threads #4013

Merged
merged 9 commits into from
Nov 21, 2023

Conversation

EduPonz
Copy link

@EduPonz EduPonz commented Nov 13, 2023

Description

This PR adds the possibility to configure various thread settings for all Fast DDS threads, both through the C++ API, and also using XML configuration files.
Those settings are:

  • Scheduling policy
  • Priority
  • Affinity
  • Stack size

Contributor Checklist

  • Commit messages follow the project guidelines.
  • The code follows the style guidelines of this project.
  • Tests that thoroughly check the new feature have been added/Regression tests checking the bug and its fix have been added; the added tests pass locally
  • Any new/modified methods have been properly documented using Doxygen.
  • N/A Changes are ABI compatible: Not applicable as this PR targets a minor version
  • Changes are API compatible.
  • New feature has been added to the versions.md file (if applicable).
  • New feature has been documented/Current behavior is correctly described in the documentation. [19645] ThreadSettings documentation Fast-DDS-docs#590
  • N/A Applicable backports have been included in the description: Not applicable as this PR targets a minor version

Reviewer Checklist

  • The PR has a milestone assigned.
  • Check contributor checklist is correct.
  • Check CI results: changes do not issue any warning.
  • Check CI results: failing tests are unrelated with the changes.

@EduPonz EduPonz added this to the v2.13.0 milestone Nov 13, 2023
@EduPonz
Copy link
Author

EduPonz commented Nov 14, 2023

@richiprosima please test mac

1 similar comment
@EduPonz
Copy link
Author

EduPonz commented Nov 14, 2023

@richiprosima please test mac

@EduPonz EduPonz added the ready-to-merge Ready to be merged. CI and changes have been reviewed and approved. label Nov 17, 2023
@EduPonz
Copy link
Author

EduPonz commented Nov 17, 2023

@richiprosima please test this

@EduPonz
Copy link
Author

EduPonz commented Nov 20, 2023

@richiprosima please test mac

MiguelCompany and others added 9 commits November 20, 2023 16:27
* Refs #19375. Added internal header for threading utilities.

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

* Refs #19375. Added empty implementation for set_name_to_current_thread.

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

* Refs #19375. Added name on Log thread.

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

* Refs #19375. Added name on shm watchdog thread.

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

* Refs #19375. Added name for filewatch threads.

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

* Refs #19375. Added name on ResourceEvent threads.

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

* Refs #19375. Added name on udp reception thread.

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

* Refs #19375. Added name on shm reception thread.

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

* Refs #19375. Added name on data-sharing reception thread.

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

* Refs #19375. Added name for TCP threads.

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

* Refs #19375. Added name on FlowController thread.

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

* Refs #19375. Added name for SHM dump threads.

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

* Refs #19375. Added initialization callback to LogTopic.

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

* Refs #19375. SecurityManager refactor to receive plugin factory by dependency injection.

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

* Refs #19375. Allow easy overload of creation of builtin plugins.

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

* Refs #19375. RTPSParticipantImpl configures the logging thread.

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

* Refs #19375. Uncrustify.

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

---------

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
* Refs #17492. Added pthread implementation for set_name_to_current_thread

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

* Refs #17492. Added implementation for Windows.

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

* Refs #17492. Added implementation for Mac.

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

* Refs #17492. Added doxygen to threading.hpp

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

* Refs #17492. Using pthread implementation for Android.

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

* Refs #17492. Fix build error on snprintf.

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

---------

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
* Refs #19377: Add ThreadSettings struct

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to Log API

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to DomainParticipantFactoryQos

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to DomainParticipantQos

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to TransportConfigQos

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to TransportDescriptorInterface

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to SharedMemTransportDescriptor

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to FlowControllerDescriptor

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to DataReaderQos

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to DomainParticipantQos for builtin flow controllers

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in DomainParticipant

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in DataReader

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in ParticipantTests

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in QosConverters

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in Transport descriptors

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in DataReaderTests

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in RTPSParticipantAttibutes

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in PortBasedTransportDescriptor

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Add builtin_controllers_sender_thread to UpdatableDomainParticipantQos

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Refactor PortBasedTransportDescriptor accessors

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Add TCP related thread settings

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Add data_sharing_listener_thread to ReaderAttributes

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Fix windows warning

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

---------

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>
Signed-off-by: EduPonz <eduardoponz@eprosima.com>
* Refs #19436. Added thread creation wrapper infrastructure.

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

* Refs #19436. Added empty implementation for apply_thread_settings_to_current_thread.

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

* Refs #19436. Refactor on Log.cpp

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

* Refs #19436. Add implementation for setting scheduler and priority.

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

* Refs #19436. Add implementation for setting cpu affinity.

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

* Refs #19436. Add test setting config for Log thread.

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

* Refs #19436. Fix SystemInfoTests link issue.

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

* Refs #19436. Changes on ResourceEvent.

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

* Refs #19436. Changes on DataSharingListener.

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

* Refs #19436. Changes on FlowControllerImpl.

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

* Refs #19436. Changes on security LogTopic.

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

* Refs #19436. Apply settings on SharedMemWatchdog.

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

* Refs #19436. Apply settings on SharedMem reception threads.

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

* Refs #19436. Apply settings on SharedMem packet dump threads.

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

* Refs #19436. Apply settings on UDP reception threads.

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

* Refs #19436. Apply settings on TCP accept and keep_alive threads.

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

* Refs #19436. Apply settings on TCP reception threads.

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

* Refs #19436. Include what you use.

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

* Refs #19436. Add MacOS implementation for setting scheduler and priority.

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

* Refs #19436. Add MacOS implementation for setting thread affinity.

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

* Refs #19437. Member cpu_mask changed to affinity and made it 64 bits.

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

* Refs #19437. Windows implementation for thread affinity.

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

* Refs #19437. Windows implementation for thread priority.

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

* Refs #19436. Made `get_thread_config_for_port` a const method.

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

* Refs #19436. Apply suggestions from code review.

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

Co-authored-by: Eduardo Ponz Segrelles <eduardoponz@eprosima.com>

* Refs #19435. Some refactors on FileWatch:
- Namespace moved to eprosima::filewatch
- Constructor receives thread settings
- Copy constructors deleted

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

* Refs #19435. SystemInfo::watch_file receives thread settings.

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

* Refs #19435. Added RTPSDomain::set_filewatch_thread_config

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

* Refs #19435. Call RTPSDomain::set_filewatch_thread_config inside DomainParticipantFactory::create_participant

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

* Refs #19435. Change priority default value.

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

* Refs #19435. Account for default values in threading_pthread

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

* Refs #19435. Account for default values in threading_osx

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

* Refs #19435. Account for default values in threading_win32

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

* Refs #19435. Linters.

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

* Refs #19435. Use C++ headers.

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

* Refs #19435. Documentation updates.

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

* Refs #19435. Suggestions on Log test.

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

* Refs #19435. Removed unused overload of create_thread.

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

---------

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
Co-authored-by: Eduardo Ponz Segrelles <eduardoponz@eprosima.com>
* Refs #19378: Add threadSettingsTypes to XSD schema

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add unit test for parsing thread_settings XML elements

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add getXMLThreadSettings to XMLElementParser

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add Log test cases to XMLProfileParserBasicTests.thread_settings_qos test

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add XML ThreadSettings config to Log

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add domainparticipant_factory XML tag tests

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add domainparticipant_factory XSD

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add XML ThreadSettings config to DomainParticipantFactory

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add getXMLEntityFactoryQos unit test

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add domainparticipant XML thread settings tests

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add XML ThreadSettings config to DomainParticipant

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Uncrustify

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add parseXMLReceptionThreads API & unit test

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add transport descriptor XML thread settings tests

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add parseXMLReceptionThreads implementation

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add transport descriptor XML thread settings config

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add datareader XML thread settings tests

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add datareader XML thread settings

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add builtin_transports_reception_threads to domainparticipant XML test

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add builtin_transports_reception_threads to domainparticipant XML

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Fix Windows warning regarding sscanf

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Fix flow controllers unittests build when using Fast CDR as thirdparty

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Apply Miguel's suggestions

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Apply some other suggestions

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378. OSx has neither `SCHED_BATCH` nor `SCHED_IDLE`

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

* Refs #19378. Check result on pthread_setschedparam

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

* Refs #19378. Add include on `threading_osx.ipp`

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

* Refs #19378. Avoid using gettid on `threading_osx.ipp`

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

* Refs #19378: Fix mac warning

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

---------

Signed-off-by: EduPonz <eduardoponz@eprosima.com>
Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
Co-authored-by: Miguel Company <MiguelCompany@eprosima.com>
Signed-off-by: EduPonz <eduardoponz@eprosima.com>
* Refs #19378: Set DomainParticipantFactoryQos when loading profiles

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Parse missing TCPTransportDescriptor XML elements

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

---------

Signed-off-by: EduPonz <eduardoponz@eprosima.com>
* Refs #19797. Initial refactor. eprosima::thread inherits from std::thread.

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

* Refs #19797. Update code in ResourceEvent.

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

* Refs #19797. Using eprosima::thread instead of std::thread.

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

* Refs #19797. Include `<thread>` where `std::this_thread` is used.

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

* Refs #19797. Copy basic eprosima::thread implementation into ipp files.

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

* Refs #19797. Select ipp file depending on platform.

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

* Refs #19797. Copy windows implementation on `thread_impl_win32.ipp`

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

* Refs #19797. Added `is_calling_thread method`.

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

* Refs #19797. Using `is_calling_thread` instead of comparing ids.

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

* Refs #19797. Using stack size argument.

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

* Refs #19797. Update test.

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

* Refs #19797. Implementation for pthread based platforms.

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

* Refs #19797. Use pthread based implementation on Mac.

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

* Refs #19797. Change windows implementation approach.

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

* Refs #19797. Factor out common code.

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

* Refs #19797. Linter

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

* Refs #19797. Use local `swap` method.

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

* Refs #19797. Pass 0 value to `pthread_attr_setstacksize`.

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

* Refs #19797. Linter

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

* Refs #19797. Improve include what you use.

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

* Refs #19797. Add missing includes

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19797. Fix thread settings on dds unit test xml profiles.

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

---------

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
Signed-off-by: EduPonz <eduardoponz@eprosima.com>
Co-authored-by: EduPonz <eduardoponz@eprosima.com>
Signed-off-by: EduPonz <eduardoponz@eprosima.com>
@EduPonz EduPonz force-pushed the feature/thread-config/main branch from 3dfae80 to 8dd9908 Compare November 20, 2023 15:28
@EduPonz
Copy link
Author

EduPonz commented Nov 20, 2023

@richiprosima please test this

@EduPonz EduPonz merged commit 3549fb9 into master Nov 21, 2023
8 checks passed
@EduPonz EduPonz deleted the feature/thread-config/main branch November 21, 2023 07:45
adriancampo pushed a commit that referenced this pull request Nov 27, 2023
* Setting infraestructure for naming threads (#3821)

* Refs #19375. Added internal header for threading utilities.

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

* Refs #19375. Added empty implementation for set_name_to_current_thread.

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

* Refs #19375. Added name on Log thread.

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

* Refs #19375. Added name on shm watchdog thread.

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

* Refs #19375. Added name for filewatch threads.

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

* Refs #19375. Added name on ResourceEvent threads.

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

* Refs #19375. Added name on udp reception thread.

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

* Refs #19375. Added name on shm reception thread.

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

* Refs #19375. Added name on data-sharing reception thread.

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

* Refs #19375. Added name for TCP threads.

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

* Refs #19375. Added name on FlowController thread.

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

* Refs #19375. Added name for SHM dump threads.

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

* Refs #19375. Added initialization callback to LogTopic.

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

* Refs #19375. SecurityManager refactor to receive plugin factory by dependency injection.

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

* Refs #19375. Allow easy overload of creation of builtin plugins.

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

* Refs #19375. RTPSParticipantImpl configures the logging thread.

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

* Refs #19375. Uncrustify.

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

---------

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

* Platform implementations for set_name_to_current_thread (#3823)

* Refs #17492. Added pthread implementation for set_name_to_current_thread

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

* Refs #17492. Added implementation for Windows.

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

* Refs #17492. Added implementation for Mac.

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

* Refs #17492. Added doxygen to threading.hpp

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

* Refs #17492. Using pthread implementation for Android.

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

* Refs #17492. Fix build error on snprintf.

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

---------

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

* Add ThreadSettings to Qos (#3848)

* Refs #19377: Add ThreadSettings struct

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to Log API

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to DomainParticipantFactoryQos

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to DomainParticipantQos

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to TransportConfigQos

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to TransportDescriptorInterface

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to SharedMemTransportDescriptor

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to FlowControllerDescriptor

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to DataReaderQos

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Add ThreadSetting to DomainParticipantQos for builtin flow controllers

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in DomainParticipant

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in DataReader

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in ParticipantTests

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in QosConverters

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in Transport descriptors

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in DataReaderTests

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in RTPSParticipantAttibutes

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Address Miguel's comments in PortBasedTransportDescriptor

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Add builtin_controllers_sender_thread to UpdatableDomainParticipantQos

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Refactor PortBasedTransportDescriptor accessors

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Add TCP related thread settings

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Add data_sharing_listener_thread to ReaderAttributes

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19377: Fix windows warning

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

---------

Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>
Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Apply thread settings (#3874)

* Refs #19436. Added thread creation wrapper infrastructure.

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

* Refs #19436. Added empty implementation for apply_thread_settings_to_current_thread.

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

* Refs #19436. Refactor on Log.cpp

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

* Refs #19436. Add implementation for setting scheduler and priority.

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

* Refs #19436. Add implementation for setting cpu affinity.

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

* Refs #19436. Add test setting config for Log thread.

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

* Refs #19436. Fix SystemInfoTests link issue.

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

* Refs #19436. Changes on ResourceEvent.

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

* Refs #19436. Changes on DataSharingListener.

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

* Refs #19436. Changes on FlowControllerImpl.

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

* Refs #19436. Changes on security LogTopic.

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

* Refs #19436. Apply settings on SharedMemWatchdog.

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

* Refs #19436. Apply settings on SharedMem reception threads.

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

* Refs #19436. Apply settings on SharedMem packet dump threads.

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

* Refs #19436. Apply settings on UDP reception threads.

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

* Refs #19436. Apply settings on TCP accept and keep_alive threads.

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

* Refs #19436. Apply settings on TCP reception threads.

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

* Refs #19436. Include what you use.

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

* Refs #19436. Add MacOS implementation for setting scheduler and priority.

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

* Refs #19436. Add MacOS implementation for setting thread affinity.

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

* Refs #19437. Member cpu_mask changed to affinity and made it 64 bits.

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

* Refs #19437. Windows implementation for thread affinity.

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

* Refs #19437. Windows implementation for thread priority.

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

* Refs #19436. Made `get_thread_config_for_port` a const method.

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

* Refs #19436. Apply suggestions from code review.

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

Co-authored-by: Eduardo Ponz Segrelles <eduardoponz@eprosima.com>

* Refs #19435. Some refactors on FileWatch:
- Namespace moved to eprosima::filewatch
- Constructor receives thread settings
- Copy constructors deleted

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

* Refs #19435. SystemInfo::watch_file receives thread settings.

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

* Refs #19435. Added RTPSDomain::set_filewatch_thread_config

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

* Refs #19435. Call RTPSDomain::set_filewatch_thread_config inside DomainParticipantFactory::create_participant

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

* Refs #19435. Change priority default value.

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

* Refs #19435. Account for default values in threading_pthread

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

* Refs #19435. Account for default values in threading_osx

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

* Refs #19435. Account for default values in threading_win32

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

* Refs #19435. Linters.

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

* Refs #19435. Use C++ headers.

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

* Refs #19435. Documentation updates.

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

* Refs #19435. Suggestions on Log test.

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

* Refs #19435. Removed unused overload of create_thread.

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

---------

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
Co-authored-by: Eduardo Ponz Segrelles <eduardoponz@eprosima.com>

* Add XML support for ThreadSettings (#3922)

* Refs #19378: Add threadSettingsTypes to XSD schema

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add unit test for parsing thread_settings XML elements

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add getXMLThreadSettings to XMLElementParser

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add Log test cases to XMLProfileParserBasicTests.thread_settings_qos test

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add XML ThreadSettings config to Log

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add domainparticipant_factory XML tag tests

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add domainparticipant_factory XSD

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add XML ThreadSettings config to DomainParticipantFactory

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add getXMLEntityFactoryQos unit test

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add domainparticipant XML thread settings tests

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add XML ThreadSettings config to DomainParticipant

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Uncrustify

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add parseXMLReceptionThreads API & unit test

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add transport descriptor XML thread settings tests

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add parseXMLReceptionThreads implementation

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add transport descriptor XML thread settings config

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add datareader XML thread settings tests

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add datareader XML thread settings

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add builtin_transports_reception_threads to domainparticipant XML test

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Add builtin_transports_reception_threads to domainparticipant XML

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Fix Windows warning regarding sscanf

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Fix flow controllers unittests build when using Fast CDR as thirdparty

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Apply Miguel's suggestions

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Apply some other suggestions

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378. OSx has neither `SCHED_BATCH` nor `SCHED_IDLE`

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

* Refs #19378. Check result on pthread_setschedparam

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

* Refs #19378. Add include on `threading_osx.ipp`

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

* Refs #19378. Avoid using gettid on `threading_osx.ipp`

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

* Refs #19378: Fix mac warning

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

---------

Signed-off-by: EduPonz <eduardoponz@eprosima.com>
Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
Co-authored-by: Miguel Company <MiguelCompany@eprosima.com>

* Fix doxygen (#3987)

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Parse missing TCPTransportDescriptor XML elements (#4001)

* Refs #19378: Set DomainParticipantFactoryQos when loading profiles

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19378: Parse missing TCPTransportDescriptor XML elements

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

---------

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Custom eprosima::thread class that allows setting the stack size (#4000)

* Refs #19797. Initial refactor. eprosima::thread inherits from std::thread.

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

* Refs #19797. Update code in ResourceEvent.

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

* Refs #19797. Using eprosima::thread instead of std::thread.

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

* Refs #19797. Include `<thread>` where `std::this_thread` is used.

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

* Refs #19797. Copy basic eprosima::thread implementation into ipp files.

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

* Refs #19797. Select ipp file depending on platform.

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

* Refs #19797. Copy windows implementation on `thread_impl_win32.ipp`

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

* Refs #19797. Added `is_calling_thread method`.

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

* Refs #19797. Using `is_calling_thread` instead of comparing ids.

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

* Refs #19797. Using stack size argument.

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

* Refs #19797. Update test.

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

* Refs #19797. Implementation for pthread based platforms.

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

* Refs #19797. Use pthread based implementation on Mac.

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

* Refs #19797. Change windows implementation approach.

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

* Refs #19797. Factor out common code.

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

* Refs #19797. Linter

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

* Refs #19797. Use local `swap` method.

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

* Refs #19797. Pass 0 value to `pthread_attr_setstacksize`.

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

* Refs #19797. Linter

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

* Refs #19797. Improve include what you use.

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

* Refs #19797. Add missing includes

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19797. Fix thread settings on dds unit test xml profiles.

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

---------

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
Signed-off-by: EduPonz <eduardoponz@eprosima.com>
Co-authored-by: EduPonz <eduardoponz@eprosima.com>

* Refs #19907: Add feature to versions.md

Signed-off-by: EduPonz <eduardoponz@eprosima.com>

---------

Signed-off-by: Miguel Company <MiguelCompany@eprosima.com>
Signed-off-by: Eduardo Ponz <eduardoponz@eprosima.com>
Signed-off-by: EduPonz <eduardoponz@eprosima.com>
Co-authored-by: Miguel Company <miguelcompany@eprosima.com>
Signed-off-by: adriancampo <adriancampo@eprosima.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ready-to-merge Ready to be merged. CI and changes have been reviewed and approved.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants