Loading...
Searching...
No Matches
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.

## Functions

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

References GR_RUNTIME_API.

## mask_signals()

GR_RUNTIME_API void gr::thread::mask_signals | ( |  | ) |

References GR_RUNTIME_API.

Referenced by gr::thread::thread_body_wrapper< F >::operator()().

## set_thread_name()

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

References GR_RUNTIME_API.

## 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

References GR_RUNTIME_API.

## 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).

References GR_RUNTIME_API.

## 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).

References GR_RUNTIME_API.

## 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).

References GR_RUNTIME_API.

## 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).

References GR_RUNTIME_API.

## thread_priority()

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

get current thread priority for a given thread ID

References GR_RUNTIME_API.

## 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).

References GR_RUNTIME_API.

## 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).

References GR_RUNTIME_API.