rtems_event_receive and timeslicing

Brett Swimley brett.swimley at aedinc.net
Tue Oct 23 15:49:47 UTC 2001


I have a situation where I have two tasks running at the same priority (=
128). Both tasks were created with RTEMS_PREEMPT and
RTEMS_TIMESLICE.

One task is blocked, waiting on an event that is sent by an ISR.  The other
task is in an infinite loop as follows:

for ( ;; )
{
	;
}

The task that is blocked on the rtems_event_receive() never appears to
receive the event.  However, if I place an

 rtems_task_suspend( RTEMS_SELF );

call prior to the infinite loop in the 2nd task - the first task does
receive the event.

I won't have this task construct in the near future as I implement more
functionality, but I would like to understand if the blocked task should run
under this situation with timeslicing enabled.  If I am missing some
configuration options as well, I would like to know.

I have
#define CONFIGURE_TICKS_PER_TIMESLICE	50
in my Initialization function file.

I'm currently using the rtems-ss-20010816 snapshot.

Thanks for any insight.

Regards,

Brett Swimley





More information about the users mailing list