diff options
| -rw-r--r-- | host/include/uhd/utils/thread.hpp | 8 | ||||
| -rw-r--r-- | host/lib/utils/thread.cpp | 12 | 
2 files changed, 20 insertions, 0 deletions
diff --git a/host/include/uhd/utils/thread.hpp b/host/include/uhd/utils/thread.hpp index c7358040e..05cba0d14 100644 --- a/host/include/uhd/utils/thread.hpp +++ b/host/include/uhd/utils/thread.hpp @@ -11,6 +11,7 @@  #include <uhd/config.hpp>  #include <boost/thread/thread.hpp>  #include <string> +#include <thread>  namespace uhd { @@ -48,6 +49,13 @@ UHD_API bool set_thread_priority_safe(   */  UHD_API void set_thread_name(boost::thread* thread, const std::string& name); +/*! + * Set the thread name on the given std thread. + * \param thread pointer to a boost thread + * \param name thread name with maximum length of 16 characters + */ +UHD_API void set_thread_name(std::thread* thread, const std::string& name); +  } // namespace uhd  #endif /* INCLUDED_UHD_UTILS_THREAD_HPP */ diff --git a/host/lib/utils/thread.cpp b/host/lib/utils/thread.cpp index 893496243..d8f52c4c8 100644 --- a/host/lib/utils/thread.cpp +++ b/host/lib/utils/thread.cpp @@ -110,3 +110,15 @@ void uhd::set_thread_name(      UHD_LOG_DEBUG("UHD", "Setting thread name is not implemented; wanted to set to " << name);  #endif /* HAVE_THREAD_SETNAME_DUMMY */  } + +void uhd::set_thread_name( +    std::thread *thrd, +    const std::string &name +) { +#ifdef HAVE_PTHREAD_SETNAME +    pthread_setname_np(thrd->native_handle(), name.substr(0,16).c_str()); +#endif /* HAVE_PTHREAD_SETNAME */ +#ifdef HAVE_THREAD_SETNAME_DUMMY +    UHD_LOG_DEBUG("UHD", "Setting thread name is not implemented; wanted to set to " << name); +#endif /* HAVE_THREAD_SETNAME_DUMMY */ +}  | 
