RTI Connext Modern C++ API  Version 6.0.0
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
rti::util Namespace Reference

<<extension>> Contains general-purpose utilities More...

Namespaces

namespace  heap_monitoring
 <<extension>> Contains the functions to enable and use the heap-monitoring utility
 

Classes

class  StreamFlagSaver
 

Functions

void sleep (const dds::core::Duration &durationIn)
 Block the calling thread for the specified duration.
 
uint64_t spin_per_microsecond ()
 Returns the number of spin operations needed to wait 1 microsecond.
 
void spin (uint64_t spin_count)
 Performs a spin operation (active wait) as many times as indicated.
 

Detailed Description

<<extension>> Contains general-purpose utilities

Function Documentation

uint64_t rti::util::spin_per_microsecond ( )

Returns the number of spin operations needed to wait 1 microsecond.

This utility can be used to measure how many spin operations must be performed to wait 1 microsecond. Since the time that it takes the CPU to perform 1 spin operation depends on the CPU frequency, it is recommended to use this utility before using spin().

Returns
Number of spin operations to wait 1 microsecond.
See Also
spin
void rti::util::spin ( uint64_t  spin_count)

Performs a spin operation (active wait) as many times as indicated.

Spinning is the action of performing useless operations in a for loop in order to actively wait some time without yielding the CPU. Given that the resolution of sleep is in the order of ms, you can use this utility to wait times in the order of microseconds. To properly use this functionality, it is useful to measure previously the number of spin operations needed to wait the equivalent to 1 microsecond (using the utility get_spin_per_microsecond) and then compute the corresponding spin count desired.

Parameters
spin_count<<in>> Number of spin operations to perform.
See Also
spin_per_microsecond

RTI Connext Modern C++ API Version 6.0.0 Copyright © Sun Mar 3 2019 Real-Time Innovations, Inc