GNU Radio Manual and C++ API Reference 3.10.5.1
The Free & Open Software Radio Ecosystem
gr::thread Namespace Reference

Classes

class  thread_body_wrapper
 
class  thread_group
 

Typedefs

typedef boost::thread thread
 
typedef boost::mutex mutex
 
typedef boost::unique_lock< boost::mutex > scoped_lock
 
typedef boost::condition_variable condition_variable
 
typedef boost::barrier barrier
 
typedef pthread_t gr_thread_t
 a system-dependent typedef for the underlying thread type. More...
 

Functions

GR_RUNTIME_API gr_thread_t get_current_thread_id ()
 Get the current thread's ID as a gr_thread_t. More...
 
GR_RUNTIME_API void thread_bind_to_processor (const std::vector< int > &mask)
 Bind the current thread to a set of cores. More...
 
GR_RUNTIME_API void thread_bind_to_processor (int n)
 Convineince function to bind the current thread to a single core. More...
 
GR_RUNTIME_API void thread_bind_to_processor (gr_thread_t thread, const std::vector< int > &mask)
 Bind a thread to a set of cores. More...
 
GR_RUNTIME_API void thread_bind_to_processor (gr_thread_t thread, unsigned int n)
 Convineince function to bind the a thread to a single core. More...
 
GR_RUNTIME_API void thread_unbind ()
 Remove any thread-processor affinity for the current thread. More...
 
GR_RUNTIME_API void thread_unbind (gr_thread_t thread)
 Remove any thread-processor affinity for a given thread ID. More...
 
GR_RUNTIME_API int thread_priority (gr_thread_t thread)
 get current thread priority for a given thread ID More...
 
GR_RUNTIME_API int set_thread_priority (gr_thread_t thread, int priority)
 set current thread priority for a given thread ID More...
 
GR_RUNTIME_API void set_thread_name (gr_thread_t thread, std::string name)
 
GR_RUNTIME_API void mask_signals ()
 

Typedef Documentation

◆ barrier

typedef boost::barrier gr::thread::barrier

◆ condition_variable

typedef boost::condition_variable gr::thread::condition_variable

◆ gr_thread_t

typedef pthread_t gr::thread::gr_thread_t

a system-dependent typedef for the underlying thread type.

◆ mutex

typedef boost::mutex gr::thread::mutex

◆ scoped_lock

typedef boost::unique_lock<boost::mutex> gr::thread::scoped_lock

◆ thread

typedef boost::thread gr::thread::thread

Function Documentation

◆ get_current_thread_id()

GR_RUNTIME_API gr_thread_t gr::thread::get_current_thread_id ( )

Get the current thread's ID as a gr_thread_t.

We use this when setting the thread affinity or any other low-level thread settings. Can be called within a GNU Radio block to get a reference to its current thread ID.

◆ mask_signals()

GR_RUNTIME_API void gr::thread::mask_signals ( )

◆ set_thread_name()

GR_RUNTIME_API void gr::thread::set_thread_name ( gr_thread_t  thread,
std::string  name 
)

◆ set_thread_priority()

GR_RUNTIME_API int gr::thread::set_thread_priority ( gr_thread_t  thread,
int  priority 
)

set current thread priority for a given thread ID

◆ thread_bind_to_processor() [1/4]

GR_RUNTIME_API void gr::thread::thread_bind_to_processor ( const std::vector< int > &  mask)

Bind the current thread to a set of cores.

Wrapper for system-dependent calls to set the affinity of the current thread to the processor mask. The mask is simply a 1-demensional vector containing the processor or core number from 0 to N-1 for N cores.

Note: this does not work on OSX; it is a nop call since OSX does not support the concept of thread affinity (and what they do support in this way since 10.5 is not what we want or can use in this fashion).

◆ thread_bind_to_processor() [2/4]

GR_RUNTIME_API void gr::thread::thread_bind_to_processor ( gr_thread_t  thread,
const std::vector< int > &  mask 
)

Bind a thread to a set of cores.

Wrapper for system-dependent calls to set the affinity of the given thread ID to the processor mask. The mask is simply a 1-demensional vector containing the processor or core number from 0 to N-1 for N cores.

Note: this does not work on OSX; it is a nop call since OSX does not support the concept of thread affinity (and what they do support in this way since 10.5 is not what we want or can use in this fashion).

◆ thread_bind_to_processor() [3/4]

GR_RUNTIME_API void gr::thread::thread_bind_to_processor ( gr_thread_t  thread,
unsigned int  n 
)

Convineince function to bind the a thread to a single core.

Wrapper for system-dependent calls to set the affinity of the given thread ID to a given core from 0 to N-1 for N cores.

Note: this does not work on OSX; it is a nop call since OSX does not support the concept of thread affinity (and what they do support in this way since 10.5 is not what we want or can use in this fashion).

◆ thread_bind_to_processor() [4/4]

GR_RUNTIME_API void gr::thread::thread_bind_to_processor ( int  n)

Convineince function to bind the current thread to a single core.

Wrapper for system-dependent calls to set the affinity of the current thread to a given core from 0 to N-1 for N cores.

Note: this does not work on OSX; it is a nop call since OSX does not support the concept of thread affinity (and what they do support in this way since 10.5 is not what we want or can use in this fashion).

◆ thread_priority()

GR_RUNTIME_API int gr::thread::thread_priority ( gr_thread_t  thread)

get current thread priority for a given thread ID

◆ thread_unbind() [1/2]

GR_RUNTIME_API void gr::thread::thread_unbind ( )

Remove any thread-processor affinity for the current thread.

Note: this does not work on OSX; it is a nop call since OSX does not support the concept of thread affinity (and what they do support in this way since 10.5 is not what we want or can use in this fashion).

◆ thread_unbind() [2/2]

GR_RUNTIME_API void gr::thread::thread_unbind ( gr_thread_t  thread)

Remove any thread-processor affinity for a given thread ID.

Note: this does not work on OSX; it is a nop call since OSX does not support the concept of thread affinity (and what they do support in this way since 10.5 is not what we want or can use in this fashion).