rtems_message_queue_receive / rtems_event_receive issues
Sebastian Huber
sebastian.huber at embedded-brains.de
Mon Oct 22 13:08:17 UTC 2018
On 22/10/2018 15:00, Catalin Demergian wrote:
> I started to look in the ready queues implementation. I added a debug
> patch tracing my tasks having priority=100.
> The way I see it, a task can enter a ready queue only
> with _Scheduler_priority_Ready_queue_enqueue/_Scheduler_priority_Ready_queue_enqueue_first
> and can be removed only by _Scheduler_priority_Ready_queue_extract.
Yes.
> I logged what rtems_clock_get_ticks_since_boot returns for every task
> and what I found was that for SCrx task this value is way behind the
> value for
> other tasks, meaning after a point is not added in the ready queue
> anymore.
> I tried with debugger too, following the next pointers to see what's
> in the ready_queue[100] and my task is not there, even if I see the
> state is ready
> when doing task command in shell.
> any idea what might be causing this?
The thread state is Thread_Control::current_state, the code sequences to
block/unblock a thread should take care that ready threads
(current_state == 0) are visible to the scheduler (enqueued). Something
might have gone wrong during a non-ready to ready thread state transition.
--
Sebastian Huber, embedded brains GmbH
Address : Dornierstr. 4, D-82178 Puchheim, Germany
Phone : +49 89 189 47 41-16
Fax : +49 89 189 47 41-09
E-Mail : sebastian.huber at embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
More information about the users
mailing list