CComponentsTimer: allow to set a thread name

This commit is contained in:
Stefan Seyfried
2017-02-12 14:46:42 +01:00
committed by svenhoefer
parent 58c6dbf469
commit 6fdd920e42
2 changed files with 14 additions and 1 deletions

View File

@@ -33,11 +33,13 @@
#include <errno.h> #include <errno.h>
#include <system/helpers.h> #include <system/helpers.h>
#include <system/debug.h> #include <system/debug.h>
#include <system/set_threadname.h>
using namespace std; using namespace std;
CComponentsTimer::CComponentsTimer(const int& interval, bool is_nano) CComponentsTimer::CComponentsTimer(const int& interval, bool is_nano)
{ {
name = "unnamed";
tm_thread = 0; tm_thread = 0;
tm_interval = interval; tm_interval = interval;
tm_enable_nano = is_nano; tm_enable_nano = is_nano;
@@ -56,7 +58,8 @@ CComponentsTimer::~CComponentsTimer()
void CComponentsTimer::runSharedTimerAction() void CComponentsTimer::runSharedTimerAction()
{ {
//start loop //start loop
string tn = "cc:"+name;
set_threadname(tn.c_str());
while(tm_enable && tm_interval > 0) { while(tm_enable && tm_interval > 0) {
tm_mutex.lock(); tm_mutex.lock();
OnTimer(); OnTimer();

View File

@@ -63,6 +63,9 @@ class CComponentsTimer : public sigc::trackable
///flag to control thread state ///flag to control thread state
bool tm_enable; bool tm_enable;
///name for the thread
std::string name;
///mutex for timer ///mutex for timer
OpenThreads::Mutex tm_mutex; OpenThreads::Mutex tm_mutex;
///slot for restart signals ///slot for restart signals
@@ -120,6 +123,13 @@ class CComponentsTimer : public sigc::trackable
*/ */
void setTimerInterval(const int& interval, bool is_nano = false); void setTimerInterval(const int& interval, bool is_nano = false);
/**set thread name
* @param[in] thread name
* @return
* void
*/
void setThreadName(const std::string& n) { name = n; };
/**Provides a signal handler to receive any function or methode. /**Provides a signal handler to receive any function or methode.
* Use this in your class where ever you need time controled actions. * Use this in your class where ever you need time controled actions.
* *