You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

59 lines
746 B

#include "Thread.hpp"
#include "Common.hpp"
#include <signal.h>
#include <iostream>
Thread::Thread()
: m_isRunning(false)
, m_threadHandler( 0 )
{
TRACE;
}
Thread::~Thread()
{
TRACE;
}
void Thread::start()
{
TRACE;
m_isRunning = true;
pthread_create( &m_threadHandler, NULL, threadStarter, ( void* )this );
}
void* Thread::join() const
{
TRACE;
void* retVal;
pthread_join( m_threadHandler, &retVal );
return retVal;
}
void Thread::stop()
{
TRACE;
m_isRunning = false;
}
void Thread::sendSignal( const int nSignal ) const
{
TRACE;
pthread_kill( m_threadHandler, nSignal );
}
void* Thread::threadStarter( void* pData )
{
LOG(Logger::FINEST, "static");
return static_cast<Thread *>(pData)->run();
}