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 <[email protected]>

* Refs #19375. Added empty implementation for set_name_to_current_thread.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Added name on Log thread.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Added name for filewatch threads.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Added name on ResourceEvent threads.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Added name for TCP threads.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Added name on FlowController thread.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Added initialization callback to LogTopic.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. RTPSParticipantImpl configures the logging thread.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Uncrustify.

Signed-off-by: Miguel Company <[email protected]>

---------

Signed-off-by: Miguel Company <[email protected]>
* Refs #17492. Added pthread implementation for set_name_to_current_thread

Signed-off-by: Miguel Company <[email protected]>

* Refs #17492. Added implementation for Windows.

Signed-off-by: Miguel Company <[email protected]>

* Refs #17492. Added implementation for Mac.

Signed-off-by: Miguel Company <[email protected]>

* Refs #17492. Added doxygen to threading.hpp

Signed-off-by: Miguel Company <[email protected]>

* Refs #17492. Using pthread implementation for Android.

Signed-off-by: Miguel Company <[email protected]>

* Refs #17492. Fix build error on snprintf.

Signed-off-by: Miguel Company <[email protected]>

---------

Signed-off-by: Miguel Company <[email protected]>
* Refs #19377: Add ThreadSettings struct

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to Log API

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to DomainParticipantFactoryQos

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to DomainParticipantQos

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to TransportConfigQos

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to TransportDescriptorInterface

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to SharedMemTransportDescriptor

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to FlowControllerDescriptor

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to DataReaderQos

Signed-off-by: Eduardo Ponz <[email protected]>

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

Signed-off-by: Eduardo Ponz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

* Refs #19377: Add builtin_controllers_sender_thread to UpdatableDomainParticipantQos

Signed-off-by: EduPonz <[email protected]>

* Refs #19377: Refactor PortBasedTransportDescriptor accessors

Signed-off-by: EduPonz <[email protected]>

* Refs #19377: Add TCP related thread settings

Signed-off-by: EduPonz <[email protected]>

* Refs #19377: Add data_sharing_listener_thread to ReaderAttributes

Signed-off-by: EduPonz <[email protected]>

* Refs #19377: Fix windows warning

Signed-off-by: EduPonz <[email protected]>

---------

Signed-off-by: Eduardo Ponz <[email protected]>
Signed-off-by: EduPonz <[email protected]>
* Refs #19436. Added thread creation wrapper infrastructure.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Added empty implementation for apply_thread_settings_to_current_thread.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Refactor on Log.cpp

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Fix SystemInfoTests link issue.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Changes on ResourceEvent.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Changes on DataSharingListener.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Changes on FlowControllerImpl.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Changes on security LogTopic.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Apply settings on SharedMemWatchdog.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Include what you use.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19437. Windows implementation for thread affinity.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19437. Windows implementation for thread priority.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Apply suggestions from code review.

Signed-off-by: Miguel Company <[email protected]>

Co-authored-by: Eduardo Ponz Segrelles <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Added RTPSDomain::set_filewatch_thread_config

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Change priority default value.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Account for default values in threading_pthread

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Account for default values in threading_osx

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Account for default values in threading_win32

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Linters.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Use C++ headers.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Documentation updates.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Suggestions on Log test.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Removed unused overload of create_thread.

Signed-off-by: Miguel Company <[email protected]>

---------

Signed-off-by: Miguel Company <[email protected]>
Co-authored-by: Eduardo Ponz Segrelles <[email protected]>
* Refs #19378: Add threadSettingsTypes to XSD schema

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add getXMLThreadSettings to XMLElementParser

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add XML ThreadSettings config to Log

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add domainparticipant_factory XML tag tests

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add domainparticipant_factory XSD

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add XML ThreadSettings config to DomainParticipantFactory

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add getXMLEntityFactoryQos unit test

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add domainparticipant XML thread settings tests

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add XML ThreadSettings config to DomainParticipant

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Uncrustify

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add parseXMLReceptionThreads API & unit test

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add parseXMLReceptionThreads implementation

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add datareader XML thread settings tests

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add datareader XML thread settings

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add builtin_transports_reception_threads to domainparticipant XML test

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add builtin_transports_reception_threads to domainparticipant XML

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Fix Windows warning regarding sscanf

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Apply Miguel's suggestions

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Apply some other suggestions

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19378. Check result on pthread_setschedparam

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19378: Fix mac warning

Signed-off-by: EduPonz <[email protected]>

---------

Signed-off-by: EduPonz <[email protected]>
Signed-off-by: Miguel Company <[email protected]>
Co-authored-by: Miguel Company <[email protected]>
Signed-off-by: EduPonz <[email protected]>
* Refs #19378: Set DomainParticipantFactoryQos when loading profiles

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Parse missing TCPTransportDescriptor XML elements

Signed-off-by: EduPonz <[email protected]>

---------

Signed-off-by: EduPonz <[email protected]>
* Refs #19797. Initial refactor. eprosima::thread inherits from std::thread.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Update code in ResourceEvent.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Added `is_calling_thread method`.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Using stack size argument.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Update test.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Implementation for pthread based platforms.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Change windows implementation approach.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Factor out common code.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Linter

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Linter

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Improve include what you use.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Add missing includes

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

---------

Signed-off-by: Miguel Company <[email protected]>
Signed-off-by: EduPonz <[email protected]>
Co-authored-by: EduPonz <[email protected]>
@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
12 of 14 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 <[email protected]>

* Refs #19375. Added empty implementation for set_name_to_current_thread.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Added name on Log thread.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Added name for filewatch threads.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Added name on ResourceEvent threads.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Added name for TCP threads.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Added name on FlowController thread.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Added initialization callback to LogTopic.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. RTPSParticipantImpl configures the logging thread.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19375. Uncrustify.

Signed-off-by: Miguel Company <[email protected]>

---------

Signed-off-by: Miguel Company <[email protected]>

* 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 <[email protected]>

* Refs #17492. Added implementation for Windows.

Signed-off-by: Miguel Company <[email protected]>

* Refs #17492. Added implementation for Mac.

Signed-off-by: Miguel Company <[email protected]>

* Refs #17492. Added doxygen to threading.hpp

Signed-off-by: Miguel Company <[email protected]>

* Refs #17492. Using pthread implementation for Android.

Signed-off-by: Miguel Company <[email protected]>

* Refs #17492. Fix build error on snprintf.

Signed-off-by: Miguel Company <[email protected]>

---------

Signed-off-by: Miguel Company <[email protected]>

* Add ThreadSettings to Qos (#3848)

* Refs #19377: Add ThreadSettings struct

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to Log API

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to DomainParticipantFactoryQos

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to DomainParticipantQos

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to TransportConfigQos

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to TransportDescriptorInterface

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to SharedMemTransportDescriptor

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to FlowControllerDescriptor

Signed-off-by: Eduardo Ponz <[email protected]>

* Refs #19377: Add ThreadSetting to DataReaderQos

Signed-off-by: Eduardo Ponz <[email protected]>

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

Signed-off-by: Eduardo Ponz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

* Refs #19377: Add builtin_controllers_sender_thread to UpdatableDomainParticipantQos

Signed-off-by: EduPonz <[email protected]>

* Refs #19377: Refactor PortBasedTransportDescriptor accessors

Signed-off-by: EduPonz <[email protected]>

* Refs #19377: Add TCP related thread settings

Signed-off-by: EduPonz <[email protected]>

* Refs #19377: Add data_sharing_listener_thread to ReaderAttributes

Signed-off-by: EduPonz <[email protected]>

* Refs #19377: Fix windows warning

Signed-off-by: EduPonz <[email protected]>

---------

Signed-off-by: Eduardo Ponz <[email protected]>
Signed-off-by: EduPonz <[email protected]>

* Apply thread settings (#3874)

* Refs #19436. Added thread creation wrapper infrastructure.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Added empty implementation for apply_thread_settings_to_current_thread.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Refactor on Log.cpp

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Fix SystemInfoTests link issue.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Changes on ResourceEvent.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Changes on DataSharingListener.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Changes on FlowControllerImpl.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Changes on security LogTopic.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Apply settings on SharedMemWatchdog.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Include what you use.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19437. Windows implementation for thread affinity.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19437. Windows implementation for thread priority.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19436. Apply suggestions from code review.

Signed-off-by: Miguel Company <[email protected]>

Co-authored-by: Eduardo Ponz Segrelles <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Added RTPSDomain::set_filewatch_thread_config

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Change priority default value.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Account for default values in threading_pthread

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Account for default values in threading_osx

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Account for default values in threading_win32

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Linters.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Use C++ headers.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Documentation updates.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Suggestions on Log test.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19435. Removed unused overload of create_thread.

Signed-off-by: Miguel Company <[email protected]>

---------

Signed-off-by: Miguel Company <[email protected]>
Co-authored-by: Eduardo Ponz Segrelles <[email protected]>

* Add XML support for ThreadSettings (#3922)

* Refs #19378: Add threadSettingsTypes to XSD schema

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add getXMLThreadSettings to XMLElementParser

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add XML ThreadSettings config to Log

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add domainparticipant_factory XML tag tests

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add domainparticipant_factory XSD

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add XML ThreadSettings config to DomainParticipantFactory

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add getXMLEntityFactoryQos unit test

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add domainparticipant XML thread settings tests

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add XML ThreadSettings config to DomainParticipant

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Uncrustify

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add parseXMLReceptionThreads API & unit test

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add parseXMLReceptionThreads implementation

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add datareader XML thread settings tests

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add datareader XML thread settings

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add builtin_transports_reception_threads to domainparticipant XML test

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Add builtin_transports_reception_threads to domainparticipant XML

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Fix Windows warning regarding sscanf

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Apply Miguel's suggestions

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Apply some other suggestions

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19378. Check result on pthread_setschedparam

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19378: Fix mac warning

Signed-off-by: EduPonz <[email protected]>

---------

Signed-off-by: EduPonz <[email protected]>
Signed-off-by: Miguel Company <[email protected]>
Co-authored-by: Miguel Company <[email protected]>

* Fix doxygen (#3987)

Signed-off-by: EduPonz <[email protected]>

* Parse missing TCPTransportDescriptor XML elements (#4001)

* Refs #19378: Set DomainParticipantFactoryQos when loading profiles

Signed-off-by: EduPonz <[email protected]>

* Refs #19378: Parse missing TCPTransportDescriptor XML elements

Signed-off-by: EduPonz <[email protected]>

---------

Signed-off-by: EduPonz <[email protected]>

* 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 <[email protected]>

* Refs #19797. Update code in ResourceEvent.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Added `is_calling_thread method`.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Using stack size argument.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Update test.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Implementation for pthread based platforms.

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Change windows implementation approach.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Factor out common code.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Linter

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Linter

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Improve include what you use.

Signed-off-by: Miguel Company <[email protected]>

* Refs #19797. Add missing includes

Signed-off-by: EduPonz <[email protected]>

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

Signed-off-by: Miguel Company <[email protected]>

---------

Signed-off-by: Miguel Company <[email protected]>
Signed-off-by: EduPonz <[email protected]>
Co-authored-by: EduPonz <[email protected]>

* Refs #19907: Add feature to versions.md

Signed-off-by: EduPonz <[email protected]>

---------

Signed-off-by: Miguel Company <[email protected]>
Signed-off-by: Eduardo Ponz <[email protected]>
Signed-off-by: EduPonz <[email protected]>
Co-authored-by: Miguel Company <[email protected]>
Signed-off-by: adriancampo <[email protected]>
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