104 if (self->m_rt_start_sync == NULL)
108 PRINTF(
"ERROR: NULL thread start barrier!\n");
112 self->m_rt_task = rt_task_init(
getpid() + pthread_self_rt(),
abs(self->m_priority),
114 if (self->m_rt_task == NULL)
116 PRINTF(
"ERROR: Cannot initialize LXRT task %lu!\n", self->m_thread_id);
117 PRINTF(
" Probably another thread with the same name already exists.\n");
120 rt_sem_wait_barrier(self->m_rt_start_sync);
124 if (self->m_priority < 0)
126 rt_make_hard_real_time();
127 if (!rt_is_hard_real_time(rt_buddy()))
129 PRINTF(
"ERROR: Setting thread %lu to hard real-time failed!\n", self->m_thread_id);
142 rt_sem_wait_barrier(self->m_rt_start_sync);
144 self->m_thread->runThread();
148 rt_make_soft_real_time();
TimeSpan abs(const TimeSpan &span)
Contains icl_core::lthread::ThreadImplLxrt38.
static void * runThread(void *arg)
Contains a system independet PRINTF macro.
ThreadImplLxrt38(Thread *thread, icl_core::ThreadPriority priority)
Contains icl_core::logging::Thread.
Contains global LXRT functions.
#define DEFAULT_STACK_SIZE
virtual ~ThreadImplLxrt38()