On 02/10/2018 15:37, Catalin Demergian wrote:
Hi,
I continued debugging.
It turned out _Thread_Unblock is not called because
in _Event_Surrender (called directly by rtems_event_send) boolean
var unblock is false.
to be more exact, in
if (
_Event_Is_blocking_on_event( the_thread, wait_class )
&& _Event_Is_satisfied( the_thread, pending_events, &seized_events )
)
the _Event_Is_blocking_on_event( the_thread, wait_class ) condition
fails, hence the else is entered, unblock is set
to false, _Thread_Unblock not called anymore; and since the call chain was
_Thread_Unblock->_Thread_Clear_state->_Scheduler_Unblock->_Scheduler_priority_Unblock->_Scheduler_Update_heir->
Context Switch to SCrx
there will be more CS for my task on the CPU.
This worked for 5401 ping packets, but for 5402th and so on it's not
working any more.
_Event_Surrender is called every second, but it fails in the same way
every time.
Now .. why would _Event_Is_blocking_on_event fail ?
This is not necessarily an error. The thread may do something else
during the call to _Event_Surrender().
--
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.hu...@embedded-brains.de
PGP : Public key available on request.
Diese Nachricht ist keine geschäftliche Mitteilung im Sinne des EHUG.
_______________________________________________
users mailing list
users@rtems.org
http://lists.rtems.org/mailman/listinfo/users