32 #if defined _SYSTEM_LXRT_ 33 # include "ThreadImplLxrt.h" 36 #if defined _SYSTEM_POSIX_ 37 # include "ThreadImplPosix.h" 38 #elif defined _SYSTEM_WIN32_ 39 # include "ThreadImplWin32.h" 41 # error "No implementation specified for System dependent components" 54 m_thread_info(description +
", 0"),
58 #if defined _SYSTEM_LXRT_ 67 m_impl =
new ThreadImplLxrt(
this, description, priority);
74 #elif defined _SYSTEM_POSIX_ 77 #elif defined _SYSTEM_WIN32_ 220 #if defined(_SYSTEM_WIN32_) 222 #elif defined(_SYSTEM_DARWIN_) 257 bool success =
false;
278 "Thread is running and we should still wait, but LockMutex() returned unexpected." 279 "The wait function will now block further until the thread is really finished." 280 "But consider that your implementation could have a failure in locking ..." <<
endl);
311 #ifdef _IC_BUILDER_DEPRECATED_STYLE_ 321 void Thread::Cancel()
329 bool Thread::CheckHardRealtime()
346 bool Thread::Execute()
const 354 bool Thread::IsHardRealtime()
const 363 bool Thread::ExecutesHardRealtime()
const 387 bool Thread::Running()
const 403 bool Thread::SetHardRealtime(
bool hard_realtime)
444 const char *Thread::ThreadInfo()
const 453 bool Thread::ThreadSelf()
const 472 return wait(timeout);
481 return wait(timeout);
509 #ifdef _IC_BUILDER_DEPRECATED_STYLE_ 514 void Thread::RunThread()
522 void Thread::WaitStarted()
const ICL_CORE_OS_IMPL_NS::ThreadId ThreadId
TimeStamp getAbsoluteTimeout(const TimeSpan &timeout_relative)
static icl_core::ThreadId selfId()
icl_core::ThreadPriority m_priority
Represents absolute times.
bool setPriority(icl_core::ThreadPriority priority)
virtual icl_core::String getDescription() const =0
icl_core::String getDescription() const
bool isHardRealtime() const
Contains global functions for string manipulation, encapsulated into the icl_core::os namespace...
friend class ThreadImplPosix
bool executesHardRealtime() const
#define LOGGING_ERROR_CO(stream, classname, objectname, arg)
icl_core::String m_thread_info
int usleep(unsigned long useconds)
unsigned int sleep(unsigned int seconds)
virtual icl_core::ThreadPriority priority() const =0
Thread(const icl_core::String &description, icl_core::ThreadPriority priority=0)
Contains logging definitions for the icl_core_thread library.
ThreadStream & endl(ThreadStream &stream)
#define LOGGING_TRACE_CO(stream, classname, objectname, arg)
#define LOGGING_DEBUG_CO(stream, classname, objectname, arg)
bool setHardRealtime(bool hard_realtime=true)
Contains icl_core::thread::tMutex.
virtual bool isHardRealtime() const =0
const TimeSpan timeout(1, 0)
virtual void setDescription(const icl_core::String &description)=0
void setDescription(const icl_core::String &description)
Contains global LXRT functions.
icl_core::ThreadPriority priority() const
Repesents absolute times.
virtual bool setPriority(icl_core::ThreadPriority priority)=0
Contains icl_core::thread::Thread.
Contains global functions for time manipulation, encapsulated into the icl_core::os namespace...
icl_core::ThreadId threadId() const
virtual bool executesHardRealtime() const =0
const char * threadInfo() const
virtual icl_core::ThreadId threadId() const =0
static TimeStamp maxTime()
friend class ThreadImplWin32
virtual void makePeriodic()
virtual bool setHardRealtime(bool hard_realtime)=0
int snprintf(char *buffer, size_t maxlen, const char *format,...)