RTI Connext .Net APIs  Version 5.0.0
Thread Settings

The properties of a thread of execution. More...

Classes

class  DDS::ThreadSettings_t
 The properties of a thread of execution. More...
 

Enumerations

enum  DDS::ThreadSettingsKind : UINT32
 A collection of flags used to configure threads of execution. More...
 
enum  DDS::ThreadSettingsCpuRotationKind : UINT32
 Determines how DDS::ThreadSettings_t::cpu_list affects processor affinity for thread-related QoS policies that apply to multiple threads. More...
 

Detailed Description

The properties of a thread of execution.

Enumeration Type Documentation

enum DDS::ThreadSettingsKind : UINT32

A collection of flags used to configure threads of execution.

Not all of these options may be relevant for all operating systems.

See Also
::DDS::ThreadSettingsKindMask

Determines how DDS::ThreadSettings_t::cpu_list affects processor affinity for thread-related QoS policies that apply to multiple threads.

Controlling CPU Core Affinity for RTI Threads

Most thread-related QoS settings apply to a single thread (such as for the DDS::EventQosPolicy, DDS::DatabaseQosPolicy, and DDS::AsynchronousPublisherQosPolicy). However, the thread settings in the DDS::ReceiverPoolQosPolicy control every receive thread created. In this case, there are several schemes to map M threads to N processors; the rotation kind controls which scheme is used.

If DDS::ThreadSettings_t::cpu_list is empty, the rotation is irrelevant since no affinity adjustment will occur. Suppose instead that DDS::ThreadSettings_t::cpu_list = {0, 1} and that the middleware creates three receive threads: {A, B, C}. If DDS::ThreadSettings_t::cpu_rotation is ::DDS::ThreadSettingsCpuRotationKind::THREAD_SETTINGS_CPU_NO_ROTATION, threads A, B and C will have the same processor affinities (0-1), and the OS will control thread scheduling within this bound. It is common to denote CPU affinities as a bitmask, where set bits represent allowed processors to run on. This mask is printed in hex, so a CPU core affinity of 0-1 can be represented by the mask 0x3.

If DDS::ThreadSettings_t::cpu_rotation is ::DDS::ThreadSettingsCpuRotationKind::THREAD_SETTINGS_CPU_RR_ROTATION, each thread will be assigned in round-robin fashion to one of the processors in DDS::ThreadSettings_t::cpu_list; perhaps thread A to 0, B to 1, and C to 0. Note that the order in which internal middleware threads spawn is unspecified.

Not all of these options may be relevant for all operating systems.


RTI Connext .Net APIs Version 5.0.0 Copyright © Thu Aug 30 2012 Real-Time Innovations, Inc