Static Public Attributes | |
static final ThreadSettingsCpuRotationKind | THREAD_SETTINGS_CPU_NO_ROTATION |
Any thread controlled by this QoS can run on any listed processor, as determined by OS scheduling. | |
static final ThreadSettingsCpuRotationKind | THREAD_SETTINGS_CPU_RR_ROTATION |
Threads controlled by this QoS will be assigned one processor from the list in round-robin order. |
If com.rti.dds.infrastructure.ThreadSettings_t.cpu_list is empty, the rotation is irrelevant since no affinity adjustment will occur. Suppose instead that com.rti.dds.infrastructure.ThreadSettings_t.cpu_list = {0, 1} and that the middleware creates three receive threads: {A, B, C}. If com.rti.dds.infrastructure.ThreadSettings_t.cpu_rotation is com.rti.dds.infrastructure.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 com.rti.dds.infrastructure.ThreadSettings_t.cpu_rotation is com.rti.dds.infrastructure.ThreadSettingsCpuRotationKind.THREAD_SETTINGS_CPU_RR_ROTATION, each thread will be assigned in round-robin fashion to one of the processors in com.rti.dds.infrastructure.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.
final ThreadSettingsCpuRotationKind THREAD_SETTINGS_CPU_NO_ROTATION [static] |
Any thread controlled by this QoS can run on any listed processor, as determined by OS scheduling.
final ThreadSettingsCpuRotationKind THREAD_SETTINGS_CPU_RR_ROTATION [static] |
Threads controlled by this QoS will be assigned one processor from the list in round-robin order.