31 #define DEFAULT_STACK_SIZE 0x4000 41 m_description(description),
86 rt_make_hard_real_time();
91 rt_make_soft_real_time();
145 if (self->m_rt_task == NULL)
147 PRINTF(
"ERROR: Cannot initialize LXRT task %lu!\n", self->m_thread_id);
148 PRINTF(
" Probably another thread with the same name already exists.\n");
152 rt_task_use_fpu(self->m_rt_task, 1);
154 if (self->m_priority < 0)
156 rt_make_hard_real_time();
157 if (!rt_is_hard_real_time(rt_buddy()))
159 PRINTF(
"ERROR: Setting thread %lu to hard real-time failed!\n", self->m_thread_id);
163 self->m_thread->runThread();
165 rt_make_soft_real_time();
166 rt_task_delete(self->m_rt_task);
167 self->m_rt_task = NULL;
ICL_CORE_OS_IMPL_NS::ThreadId ThreadId
virtual bool executesHardRealtime() const
virtual bool isHardRealtime() const
ThreadPriority m_priority
Contains icl_core::thread::ThreadImpl for RTAI/LXRT 3.3.
TimeSpan abs(const TimeSpan &span)
ThreadImplLxrt33(Thread *thread, const icl_core::String &description, icl_core::ThreadPriority priority)
Contains a system independet PRINTF macro.
Contains logging definitions for the icl_core_thread library.
virtual bool setHardRealtime(bool hard_realtime)
virtual bool setPriority(icl_core::ThreadPriority priority)
Contains global LXRT functions.
Contains icl_core::thread::Thread.
virtual ~ThreadImplLxrt33()
virtual icl_core::ThreadPriority priority() const
#define DEFAULT_STACK_SIZE
virtual icl_core::ThreadId threadId() const
static void * runThread(void *arg)