106 if (self->m_rt_start_sync == NULL)
110 PRINTF(
"ERROR: NULL thread start barrier!\n");
114 self->m_rt_task = rt_task_init(
getpid() + pthread_self_rt(),
abs(self->m_priority),
116 if (self->m_rt_task == NULL)
118 PRINTF(
"ERROR: Cannot initialize LXRT task %lu!\n", self->m_thread_id);
119 PRINTF(
" Probably another thread with the same name already exists.\n");
122 pthread_barrier_wait_rt(self->m_rt_start_sync);
126 if (self->m_priority < 0)
128 rt_make_hard_real_time();
129 if (!rt_is_hard_real_time(rt_buddy()))
131 PRINTF(
"ERROR: Setting thread %lu to hard real-time failed!\n", self->m_thread_id);
144 pthread_barrier_wait_rt(self->m_rt_start_sync);
146 self->m_thread->runThread();
150 rt_make_soft_real_time();
TimeSpan abs(const TimeSpan &span)
Contains icl_core::lthread::ThreadImplLxrt35.
Contains a system independet PRINTF macro.
Contains icl_core::logging::Thread.
Contains global LXRT functions.
static void * runThread(void *arg)
pthread_barrier_t * m_rt_start_sync
ThreadImplLxrt35(Thread *thread, icl_core::ThreadPriority priority)
#define DEFAULT_STACK_SIZE
virtual ~ThreadImplLxrt35()